【linux】 各ユーザーのログイン履歴確認コマンド(last, lastlog)
各ユーザーのログイン履歴や、最終ログイン日時を確認することができるコマンドがあることを知りましたのでメモメモ。
管理サーバの不正ログインを検知するのに使えそうですね。
最近ログインしたユーザー履歴確認
# last
実行結果
[root@db-1 scripts]# last root pts/0 192.168.2.12 Wed Jun 10 07:59 still logged in oracle pts/3 :0.0 Tue Jun 9 22:11 - 22:29 (00:17) oracle pts/0 :0.0 Tue Jun 9 21:57 - 22:29 (00:31) oracle tty1 :0 Tue Jun 9 21:57 still logged in root pts/2 192.168.2.12 Tue Jun 9 21:51 - 22:29 (00:38) root pts/1 192.168.2.12 Tue Jun 9 21:49 - 22:29 (00:39) root pts/1 192.168.2.12 Tue Jun 9 17:15 - 20:32 (03:16) root pts/0 :0.0 Tue Jun 9 12:43 - 21:56 (09:12) root tty1 :0 Tue Jun 9 12:42 - 21:56 (09:13) reboot system boot 2.6.32-504.el6.x Tue Jun 9 12:41 - 08:36 (19:54) root pts/0 :0.0 Tue Jun 9 12:23 - down (00:18) root tty1 :0 Tue Jun 9 12:22 - down (00:18) reboot system boot 2.6.32-504.el6.x Tue Jun 9 12:22 - 12:41 (00:19) root pts/0 :0.0 Tue Jun 9 12:20 - down (00:01) root tty1 :0 Tue Jun 9 12:20 - down (00:01) reboot system boot 2.6.32-504.el6.x Tue Jun 9 12:18 - 12:21 (00:03) root pts/0 :0.0 Tue Jun 9 11:41 - down (00:36) root tty1 :0 Tue Jun 9 11:41 - down (00:37) reboot system boot 2.6.32-504.el6.x Tue Jun 9 11:40 - 12:18 (00:38) reboot system boot 2.6.32-504.el6.x Tue Jun 9 11:38 - 11:39 (00:01) wtmp begins Tue Jun 9 11:38:42 2015
各ユーザーの最終ログイン日時確認
# lastlog
実行結果
[root@db-1 scripts]# lastlog ユーザ名 ポート 場所 最近のログイン root pts/0 192.168.xx.xx 水 6月 10 07:59:27 +0900 2015 bin **一度もログインしていません** daemon **一度もログインしていません** adm **一度もログインしていません** lp **一度もログインしていません** sync **一度もログインしていません** shutdown **一度もログインしていません** halt **一度もログインしていません** mail **一度もログインしていません** uucp **一度もログインしていません** operator **一度もログインしていません** games **一度もログインしていません** gopher **一度もログインしていません** ftp **一度もログインしていません** nobody **一度もログインしていません** dbus **一度もログインしていません** vcsa **一度もログインしていません** rpc **一度もログインしていません** rtkit **一度もログインしていません** avahi-autoipd **一度もログインしていません** abrt **一度もログインしていません** rpcuser **一度もログインしていません** nfsnobody **一度もログインしていません** haldaemon **一度もログインしていません** gdm **一度もログインしていません** ntp **一度もログインしていません** saslauth **一度もログインしていません** postfix **一度もログインしていません** pulse **一度もログインしていません** sshd **一度もログインしていません** oprofile **一度もログインしていません** tcpdump **一度もログインしていません** oracle **一度もログインしていません**
補足
マニュアルによると、last
コマンドは/var/log/wtmp
、lastlog
コマンドは/var/log/lastlog
というバイナリファイルの内容を整形して表示させているようです。
また、wtmpはどのくらいの期間のログイン履歴を保持しているかというと、デフォルトでログローテーションするよう設定されているため、通常1ヶ月の履歴を保持しているようです。
[root@db-1 scripts]# cat /etc/logrotate.conf # see "man logrotate" for details ~~ 中略 ~~~ # no packages own wtmp and btmp -- we'll rotate them here /var/log/wtmp { monthly create 0664 root utmp minsize 1M rotate 1 } ~~ 中略 ~~~ # system-specific logs may be also be configured here.