Perintah "Terakhir": Bagaimana cara menunjukkan login pengguna terbaru?

19

Seperti yang saya tahu, lastperintah ini menunjukkan login terbaru oleh semua pengguna. Tetapi PC saya (CentOS) telah digunakan selama kurang lebih satu tahun, dan ada banyak pengguna yang login. Saya mencoba menggunakan lastperintah, tetapi itu baru terlihat dari Juni 2013 hingga September 2013.

Pertanyaan saya adalah: bagaimana saya bisa menampilkan pengguna terbaru yang telah masuk baru-baru ini, katakanlah (Desember 2013 hingga Jan 2014)?

Thomas
sumber
Bisakah Anda memeriksa apakah /var/log/wtmpfile tersebut ada dan waktu perubahan terakhir digunakan stat.
mkc
Juga, perhatikan bahwa entri terbaru dalam output dari perintah terakhir akan di bagian atas.
mkc
lagi pula untuk membuatnya turun ke bawah?
Thomas
1
Cobalast | tac
mkc
1
lakukan saja stat:stat /var/log/wtmp
mkc

Jawaban:

15

lastmembaca dari file log, biasanya /var/log/wtmpdan mencetak entri dari upaya login yang berhasil yang dilakukan oleh pengguna di masa lalu. Outputnya sedemikian rupa sehingga entri pengguna yang terakhir kali login muncul di atas. Dalam kasus Anda mungkin itu tidak diketahui karena ini.

Untuk memeriksa kapan file /var/log/wtmpterakhir ditulis, Anda dapat menggunakan statperintah:

stat /var/log/wtmp

Untuk mencetak output secara terbalik, Anda dapat menyalurkan output last to GNU tac(kebalikan dari cat) sebagai berikut:

last | tac
mkc
sumber
16

Anda juga dapat menggunakan perintah lastlogperintah di Linux. Ini memberi Anda lebih banyak kontrol granular untuk rentang tanggal ketika melihat melalui log login pengguna.

kutipan dari halaman manual lastlog

   lastlog - reports the most recent login of all users or of a given user

Contoh

Untuk mengetahui pengguna yang telah masuk ke sistem dalam 100 hari terakhir.

$ lastlog -b 0 -t 100
Username         Port     From             Latest
sam              pts/0    pegasus          Wed Jan  8 20:32:25 -0500 2014
joe              pts/0    192.168.1.105    Thu Dec 12 12:47:11 -0500 2013

Ini menunjukkan bahwa pengguna terakhir kali masuk ke sistem ini. Rentang waktu menunjukkan 100 hari terakhir. Sebelum hari ini ( -b 0) dan setelah 100 hari yang lalu ( -t 100).

Anda juga dapat menampilkan semua pengguna dengan menghilangkan rentang apa pun dan hanya melihat setiap pengguna yang pernah masuk, dan terakhir kali mereka masuk.

slm
sumber
0

Anda dapat mencoba skrip ini:

for user in $( awk -F: '{ print $1}' /etc/passwd)
do
lastlog=$(sudo lsuser -a time_last_login $user | awk -F'=' '{print $NF}')
echo "$user         \c"; perl -le "print scalar localtime($lastlog);"
done
Stephen Kitt
sumber
1
Selamat datang di Unix.SE. Bisakah Anda menjelaskan keunggulan apa yang dimiliki pendekatan ini daripada jawaban yang ada, jika ada?
Stephen Kitt
skrip ini akan memberikan cap waktu log terakhir untuk semua pengguna di UNIX (AIX)
Terimakasih atas infonya; harap edit jawaban Anda untuk menyebutkan itu. Perhatikan juga bahwa pertanyaannya adalah tentang CentOS, bukan AIX.
Stephen Kitt