Linuxでユーザーのログイン履歴や最終ログインを確認するコマンド「last」と「lastlog」について説明します。
不正ログインの検知や、どのユーザーがサーバーで作業していたのかを確認する時などに使えます。
【lastlog】全てのユーザーの最終ログインを確認する
lastlogでは全てのユーザーの最終ログイン時の情報を表示することができます。
lastlog は最終ログインの記録ファイル /var/log/lastlog の内容を整形して表示します。
1 |
$lastlog [-u ユーザー] [-t n日] |
-u, --user | 指定したユーザー名の記録だけ表示します |
-t, --time | n日以内の最終ログインを表示します |
-uオプションが指定されている時は、-t オプションは無視されます。また、一度もログインしていないユーザは、「**Never logged in**」という表示されます。
サンプル
全てのユーザーの最終ログインを表示します。
1 2 3 4 5 6 7 8 |
$lastlog ユーザ名 ポート 場所 最近のログイン root pts/0 210-175-26-128.c 金 11月 20 12:45:24 +0900 2015 bin **一度もログインしていません** nginx **一度もログインしていません** mysql **一度もログインしていません** sample_user pts/0 210-175-26-128.c 金 4月 15 17:39:38 +0900 2016 |
【last】直近のログイン履歴を確認する
lastlogは全ユーザーの最終ログイン時の情報を表示するコマンドでしたが、lastは、ログイン履歴を保存する/var/log/wtmpファイルを整形して表示したものです。オプションやユーザーを指定することで、表示するログイン履歴を絞り込むことができます。
1 |
$ last [オプション] [ユーザー] [tty...] |
-n | 行数を指定します |
-a | ホスト名を最後の欄に表示します |
-R | hostnameフィールドを表示しない |
サンプル
rootユーザーの直近5回のログイン履歴を表示します。
1 2 3 4 5 6 |
$last -n 5 root root pts/0 210-172-24-125.c Fri Nov 20 12:45 - 17:06 (04:21) root pts/0 210-172-24-125.c Tue Nov 17 19:44 - 12:01 (16:17) root pts/0 210-172-24-125.c Tue Nov 17 18:41 - 19:39 (00:58) root pts/0 210-172-24-125.c Tue Nov 17 17:50 - 17:51 (00:01) root pts/0 210-172-24-125.c Tue Nov 17 17:45 - 17:48 (00:03) |
また、システムを再起動すると疑似的なユーザrebootがログインしたものとして記録されます。「last reboot」とすれば、再起動の履歴を確認できます。
また、lastコマンドとは別に、不正ログインの履歴を表示するlastbコマンドもあります。