Jawaban:
Log login pada linux redhat-style disebut wtmp
( man wtmp
), disimpan /var/log/
secara default, dan Anda dapat mengambilnya menggunakan utmpdump
(pada 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]
...
Tampaknya last
dapat digunakan untuk mencapai apa yang Anda coba lakukan. Anda perlu menambahkan tanggal ke perintah terakhir untuk mengekstrak informasi.
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
Namun, jika Anda khawatir menemukan informasi tentang pengguna tertentu, Anda dapat memodifikasi perintah terakhir sebagai last username
dan kemudian pipa while
loop ke sana. Ini akan memberi Anda informasi informasi login pengguna tertentu selama satu tahun terakhir.
Saya menguji perintah di atas dan berfungsi dengan baik di sistem saya. Saya mengambil perintah di atas dari sini .
Anda dapat mengubah tanggal pada perintah untuk memenuhi kebutuhan Anda.
last
perintah - tetapi Anda harus melakukan lebih banyak penelitian dari itu, dan dalam hal apapun, Anda belum benar-benar ditentukan mengapa paralast
perintah tidak berguna. juga, tentukan "login". Anda ingin melacak login konsol? Login SSH? Emacs dilarang,telnet
login? atau hanya sesuatu yang otentik dengan PAM? lebih spesifik .