【last, lastlog】Linuxでログイン履歴を確認するコマンド

Linuxでユーザーのログイン履歴や最終ログインを確認するコマンド「last」と「lastlog」について説明します。

不正ログインの検知や、どのユーザーがサーバーで作業していたのかを確認する時などに使えます。

【lastlog】全てのユーザーの最終ログインを確認する

lastlogでは全てのユーザーの最終ログイン時の情報を表示することができます。

lastlog は最終ログインの記録ファイル /var/log/lastlog の内容を整形して表示します。

$lastlog [-u ユーザー] [-t n日]
オプション
-u, --user 指定したユーザー名の記録だけ表示します
-t, --time n日以内の最終ログインを表示します

-uオプションが指定されている時は、-t オプションは無視されます。また、一度もログインしていないユーザは、「**Never logged in**」という表示されます。

サンプル

全てのユーザーの最終ログインを表示します。

$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ファイルを整形して表示したものです。オプションやユーザーを指定することで、表示するログイン履歴を絞り込むことができます。

$ last [オプション] [ユーザー] [tty...]
オプション
-n 行数を指定します
-a ホスト名を最後の欄に表示します
-R hostnameフィールドを表示しない

サンプル

rootユーザーの直近5回のログイン履歴を表示します。

$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コマンドもあります。