Linux: jak uzyskać wszystkie logi logowania z mojego systemu [zamknięte]

12

Chcę wiedzieć, ile razy użytkownik loguje się do mojego systemu od zeszłego roku?
Użyłem lastpolecenia, ale to nie jest przydatne.

gabo34
źródło
1
Witamy w Stack Exchange! pamiętajcie, że wszyscy jesteśmy tutaj wolontariuszami. dlatego oczekujemy, że przeprowadziłeś podstawowe badania. wygląda na to, że zaczynasz - odkąd wspomniałeś o wypróbowaniu lastpolecenia - ale powinieneś robić więcej badań, a w każdym razie nie określiłeś, dlaczego to lastpolecenie nie jest przydatne. zdefiniuj także „zalogowany”. czy chcesz śledzić logowania do konsoli? Logowanie SSH? Emacs zabrania, telnetlogujesz się? czy po prostu coś uwierzytelniającego w PAM? być konkretnym .
strugee

Odpowiedzi:

10

Logi logowania na linuxie w stylu redhat są nazywane wtmp( man wtmp), /var/log/domyślnie przechowywane i można je odzyskać za pomocą utmpdump(na RHEL6).

[root@server ~]# utmpdump /var/log/wtmp* | awk '$4~"root" {print}'
Utmp dump of /var/log/wtmp
[7] [01320] [ts/0] [root    ] [pts/0       ] [192.168.1.101       ] [192.168.1.101  ] [Tue Sep 24 00:31:47 2013 UTC]
[7] [01817] [ts/3] [root    ] [pts/3       ] [192.168.1.101       ] [192.168.1.101  ] [Tue Sep 24 00:38:22 2013 UTC]
[7] [01690] [ts/0] [root    ] [pts/0       ] [192.168.1.101       ] [192.168.1.101  ] [Tue Sep 24 00:59:04 2013 UTC]
[7] [23641] [ts/0] [root    ] [pts/0       ] [192.168.1.101       ] [192.168.1.101  ] [Wed Sep 25 19:12:44 2013 UTC]
[7] [03020] [ts/0] [root    ] [pts/0       ] [192.168.1.100       ] [192.168.1.100  ] [Fri Sep 27 21:33:40 2013 UTC]
...
Tomasz
źródło
1

Wydaje się, że lastmożna go wykorzystać do osiągnięcia tego, co próbujesz zrobić. Musisz dodać datę do ostatniego polecenia, aby wyodrębnić informacje.

last | while read line; do date=`date -d "$(echo $line | awk '{ print $5" "$6" "$7 }')" +%s`; [[ $date -ge `date -d "Aug 25 00:00" +%s` && $date -le `date -d "Aug 28 00:00" +%s` ]] && echo $line; done

Jeśli jednak zależy Ci na znalezieniu informacji o konkretnym użytkowniku, możesz zmodyfikować ostatnie polecenie jako, last usernamea następnie whilepotokować do niego pętlę. Dostarczyłoby ci informacji o danych logowania konkretnego użytkownika za ostatni rok.

Przetestowałem powyższe polecenie i działa ono doskonale w moim systemie. Stąd wziąłem powyższe polecenie .

Możesz zmienić datę w poleceniu zgodnie z własnymi wymaganiami.

Ramesh
źródło