Jak uzyskać powiadomienie, gdy inni użytkownicy logują się do „mojego” systemu?


9

Znam whopolecenie pokazujące mi wszystkich zalogowanych użytkowników. Ale chcę być w jakiś sposób poinformowany, gdy ktoś oprócz mnie zaloguje się do mojego systemu. Każdy aplet? Byłoby również miło, gdyby aplet pokazywał liczbę różnych zalogowanych użytkowników, co oznacza posiadanie powłoki logowania i nawiązanego połączenia ssh.


BTW: czy ktoś może komentować przerwanie prób. Czy wówczas nadal wykonywany jest plik /etc/profile.d? Wydaje mi się, że zależy to od włamania, więc w przypadku ataków ssh brutalnej siły może się to utrzymywać, a eskalacja praw do uruchomionych usług może nie mieć miejsca. Ahh wydaje się, że monitorowanie użytkowników nie jest łatwym zadaniem.
matematyka

Odpowiedzi:


10

W przypadku części powiadomienia, gdy ktoś loguje się w twoim systemie, możesz spróbować umieścić mały skrypt w /etc/profile.dskrypcie. Za pomocą powiadomienia-wysyłania (część pakietu libnotify-bin) możesz spróbować:

/etc/profile.d/notify_log.sh

notify-send -t 3000 "User logged in" `whoami`

a następnie za każdym razem, gdy ktoś zaloguje się do twojego systemu, otrzymasz powiadomienie.

EDYCJA: Więc to nie działa dobrze :( Jeśli skonfigurowałeś serwer pocztowy na swoim komputerze, możesz użyć polecenia mail zamiast notify-send.

Ale zgodnie z postem tutaj lepszym rozwiązaniem byłby skrypt pam_exec .


Dobry pomysł, ale nie ma potrzeby, aby był wykonywalny i nie musiał mieć shebang, ponieważ pliki /etc/profile.d/są pobierane. Tylko powłoki logowania (terminale wirtualne i logowanie ssh) i niektóre dane logowania GUI wykonują inicjalizację profilu.
enzotib

@enzotib: dziękuję za wskazówki, poprawiłem swoją odpowiedź :)
Cédric Julien

Ok, próbowałem, ale jak dotąd bez powodzenia. Powodem jest to, że jeden użytkownik nie może łatwo powiadomić innego. Dlatego należy ustawić niektóre zmienne środowiskowe, patrz: g-loaded.eu/2007/11/18/… . Do tej pory mam jakiś plik wykonywalny, który robi to, ale nie po zalogowaniu!?! Jeśli zaraz source /etc/profile.d/notify_log.shpo zalogowaniu przez ssh, powiadomienie zostanie wysłane. Wydaje mi się, że nie jest poprawnie wykonywany po zalogowaniu. Zaobserwowałem /var/log/auth.log bez powodzenia. Jakaś pomoc?
matematyka

Znalazłem powód: używam ZSH i / etc / zsh / zprofile jest pusty, powinien być źródłem / etc / profile, który z kolei powinien źródła /etc/profile.d/*.sh, ale nic nie robi! > - (.. Wyślę to wtedy jawnie i sprawdzę wszystkie inne zainstalowane powłoki, ponieważ nie wiem, które powłoki logowania są używane przez wszystkich użytkowników LDAP .. W każdym razie dzięki.
matem.

@brubelsabs: oups, zredagowałem swoją odpowiedź innymi rozwiązaniami
Cédric Julien

2

Robimy to, tworząc plik /etc/profile.d/notify.sho następującej treści:

#!/bin/sh

sender="hostname@example.com"
recepient="admingroup@example.com"
subject="Privileged Account logon used"
message="`env`"
    echo "$message" | mail -s "$subject" -r "$sender" -Smtp=mail.example.com "$recepient"

Zakładając, że mailx jest zainstalowany.


Tak, czasami możesz przegapić powiadomienie na pulpicie, ale poczta zwykle pozostaje.
matematyka

@Antonio Czy musisz dodać skrypt do crontab? Wygląda na to, że nie działa.
cokedude
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.