[Ubuntu 13.10] login użytkownika aktywnie używającego komputera

Cześć!

Proszę o pomoc w dojśiu do tego jak z poziomu procesu uruchamianego w cron dowiedzieć się jaki użytkownik używa obecnie komputera. Jestem w stanie pobrać informacje na temat wszystkich zalogowanych użytkowników, ale nie wiem jak rozpoznać tego, który akurat ma aktywny pulpit. Chciałbym zrealizować coś w rodzaju licznika użycia PC przez użytkowników, ale tylko tych aktywnych. Licznik miałby liczyć czas tylko aktywnemu użytkownikowi, a nie wszystkim zalogowanym. Jak coś takiego można zrealizować?

Pozdrawiam.

 

Chcesz sprawdzać każde logowanie do konsoli, czy tylko uruchomine Xy (czy oba)?

Próbowałeś whoami  ?

To ma być coś na wzór kontroli rodzicielskiej. Proces uruchamiany w cron np. co 1 minutę ma sprawdzać, który z użytkowników jest aktywny (zalogowanych może być kilku, ale co najwyżej jeden może używać komputera w danej chwili). Z uwagi na to, whoami nie zadziała, bo oczywiście zwróci mi root.

MrQ nie wiem do końca, jak powinna brzmieć odpowiedź na Twoje pytanie, bo chyba nie do końca o to mi chodzi. Ja chciałbym wiedzieć, ile czasu dany użytkownik używał komputer. Dlatego chciałbym wiedzieć, kto jest obecnie aktywny.

Sprawdź komendę:

w

w zwraca mi wszystkich zalogowanych użytkowników:

 21:49:16 up 49 min,  5 users,  load average: 0,40, 0,25, 0,24
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
tomasz   tty7     :0               20:59   49:45   1:29   0.12s init --user
tomasz   pts/1    :0               21:43    4.00s  0.06s  0.01s w
tomasz   pts/4    :0               21:44    4:36   0.04s  0.04s /bin/bash
antos    tty8     :1               21:46   49:45   1.78s  0.10s init --user
zosia    tty9     :2               21:48   49:45   1.23s  0.10s init --user

Nie wiem jak na tej podstawie stwierdzić, który użytkownik jest aktywny.

wpisanie ~ wyrzuci błąd w stylu:

bash: /home/aktywnyuser: Jest katalogiem

Niestety, cron uruchamia to jako root, więc otrzymuję /root jako ścieżkę do katalogu domowego.

Może polecenie  last  na coś Ci się przyda.

 

Co rozumiesz przez “aktywny”?

To jest wykły PC. W tym momencie używam go ja (tomasz). Kończę swoją pracę i oddaje go do dyspozycji synowi (antos), ale się nie wylogowuję. Syn przełącza użytkownika i działa na swoim koncie. “Aktywny” użytkonwik w moim rozumieniu, to ten który właśnie siedzi przed monitorem.

To chyba bez kamery się nie obędzie. :slight_smile:

 

A tak na serio to może coś z tego się przyda ? http://www.tecmint.com/how-to-monitor-user-activity-with-psacct-or-acct-tools/

Gdybyś znał hasło użytkownika, mógłbyś użyć su -p**. User “zostałby sobą”, tylko dostałby prawa superużytkownika i mógłby wykonać crona.**

Rozumiem, że musiałbym takie zadanie cron przypisać każdemu z użytkowników? Hasła znam, ale nie wiem jak miałbym zrealizować Twój pomysł.