ログイン履歴 last, lastlog, wtmp, utmp

lastコマンドで最近ログインしたアカウントを確認することができる。

#last
admin    pts/0        xx.xx.xx.xxx.in- Sun Jan  7 22:19   still logged in
reboot   system boot  2.6.9-42.EL      Sun Jan  7 22:18          (00:17)
admin    pts/0        xx.xx.xx.xxx.in- Sat Jan  6 08:23 - down   (00:36)
root     tty1                          Sat Jan  6 08:20 - down   (00:39)
reboot   system boot  2.6.9-42.EL      Sat Jan  6 06:18          (02:41)
admin    pts/0        xx.xx.xx.xxx.in- Sat Jan  6 06:11 - down   (00:04)
reboot   system boot  2.6.9-42.EL      Sat Jan  6 06:07          (00:08)
admin    pts/0        xx.xx.xx.xxx.    Sat Jan  6 05:55 - down   (00:09)
reboot   system boot  2.6.9-42.ELsmp   Sat Jan  6 05:54          (00:11)
admin    pts/2        xx.xx.xx.xxx.in- Sat Jan  6 00:34 - 02:39  (02:04)

このログは/var/log/wtmpに残っている。これはバイナリなので中を見たいときはwhoコマンドでみる。

#who /var/log/wtmp
hoge    pts/2        Jan  6 00:34 (xx.xx.xx.xxx..in-addr.arpa)
hoge    pts/0        Jan  6 05:55 (xxx.xxx.xx.xx)
hoge    pts/0        Jan  6 06:11 (xx.xx.xx.xxx..in-addr.arpa)
root     tty1         Jan  6 08:20
hoge    pts/0        Jan  6 08:23 (xx.xx.xx.xxx..in-addr.arpa)
hoge    pts/0        Jan  7 22:19 (xx.xx.xx.xxx..in-addr.arpa)

lastlogコマンドは各アカウントの最終ログインの一覧を見るときに便利だ。普段利用していないアカウントでログインされていると・・・。怖いですね。

#lastlog
Username         Port     From             Latest
root             tty1                      Sat Jan  6 08:20:21 +0900 2007
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
hoge             pts/0    xx.xx.xx.xxx.in- Sun Jan  7 22:19:41 +0900 2007
moge             pts/1    xx.xx.xx.xxx.in- Sat Dec 30 02:53:05 +0900 2006
mysql                                      **Never logged in**
postgres                                   **Never logged in**
alias                                      **Never logged in**
qmaild                                     **Never logged in**
qmaill                                     **Never logged in**
qmailp                                     **Never logged in**
qmailq                                     **Never logged in**
qmailr                                     **Never logged in**
qmails                                     **Never logged in**
vpopmail                                   **Never logged in**

whoコマンドで/var/run/utmpも見ることができる。
これは現在システムを利用しているユーザの情報。
※ただすべてのプログラムが utmp ファイルを更新しているわけではないので、実際にはそれ以上のユーザーがシステムを使っている可能性がある。 (Manpageより)
【参考サイト】@IT 連載:不正侵入の手口と対策