Linuxのサーバー運用やシステム管理をしていると、「誰がいつログインしたのか」「不正アクセスの形跡がないか」といったログイン履歴の確認がとても重要になります。
そんなときに役立つのが「last」コマンドです。
このコマンドを使えば、ユーザーのログインやログアウトの履歴、接続元IPアドレスなどを簡単に確認することができます。
この記事では、lastコマンドの基本的な使い方から、オプションの活用法、注意点までをわかりやすく解説します。
はじめてlastを使う方も、より深く理解したい方も、ぜひ参考にしてください。
lastコマンドとは?
last
コマンドは、LinuxやUNIX系OSで利用できるログイン履歴表示のためのコマンドです。
このコマンドを実行すると、過去にログインしたユーザーの情報が一覧で表示されます。
表示される内容には、以下のような情報が含まれます。
- ユーザー名
- ターミナル名
- 接続元(IPアドレスやホスト名)
- ログイン時刻
- ログアウト時刻
- セッションの継続時間
この情報は、/var/log/wtmp
というバイナリファイルを読み取って表示されます。
基本的な使い方
もっともシンプルな使い方は以下の通りです。
last
このコマンドを実行すると、最新のログイン情報から順に一覧が表示されます。
例として、以下のような出力が得られます。
user01 pts/0 192.168.1.5 Mon Apr 1 09:25 still logged in
user02 pts/1 192.168.1.10 Sun Mar 31 18:40 - 19:15 (00:35)
reboot system boot 5.4.0-91-generic Sun Mar 31 17:00 still running
出力の意味
項目 | 説明 |
---|---|
user01 | ログインしたユーザー名 |
pts/0 | ログインした端末(仮想端末) |
192.168.1.5 | 接続元のIPアドレス |
Apr 1 09:25 | ログインした日時 |
still logged in | 現在もログイン中 |
(00:35) | ログインセッションの継続時間 |
特定のユーザーの履歴を調べる
特定のユーザーだけのログイン履歴を調べたい場合は、以下のように指定します。
last user01
このようにユーザー名を指定すると、そのユーザーに関する履歴だけが表示されます。
ログイン回数を制限して表示する
大量のログイン履歴があると、すべて表示すると見づらくなってしまいます。
そこで、表示する件数を制限することができます。
last -n 5
この例では、最新の5件のログイン履歴だけが表示されます。
同様に -n 10
や -n 20
など、必要に応じて数を変えることができます。
特定の期間のログイン履歴を確認する
日付を指定してログイン履歴を確認したい場合は、last
コマンド単体では日付フィルターの指定は難しいですが、last | grep
を使うことで絞り込むことができます。
last | grep "Apr 1"
このようにすれば、4月1日にログインした履歴のみを表示できます。
ログの精査や監査にも便利です。
再起動やシャットダウンの履歴を見る
last
コマンドでは、「reboot」や「shutdown」などのシステムに関する履歴も表示されます。
これらを明示的に確認したい場合は次のようにします。
last reboot
または
last shutdown
これにより、いつシステムが再起動されたのか、いつシャットダウンされたのかを確認できます。
バイナリファイルを直接指定する
デフォルトでは /var/log/wtmp
を読み取っていますが、古い履歴を確認したい場合は、ローテートされたログを指定することも可能です。
last -f /var/log/wtmp.1
wtmp.1
は過去のログイン履歴が保存されたファイルです。ログローテーションの設定によってファイル名は異なることがあります。
「lastb」コマンドとの違い
lastb
コマンドは、ログインに失敗した履歴を表示するためのコマンドです。
例えば、不正ログインの試みがあった場合などに確認することができます。
lastb
これは /var/log/btmp
という別のファイルを参照しています。
セキュリティ上の監査を行う際には last
と lastb
の両方を確認すると効果的です。
注意点とよくあるトラブル
ログが見られない・表示されない
/var/log/wtmp
ファイルが存在しない場合、表示されません。- ログローテートによって過去のログが移動している場合があります。
ログファイルの存在を確認しましょう。
ls -l /var/log/wtmp*
root権限が必要な場合も
ログファイルにアクセスできない場合は、root権限で実行する必要があります。
sudo last
セキュリティ対策に活用するポイント
- 不審なIPからのアクセスがないか確認する
- 未使用ユーザーのアクティビティがないかチェックする
- ログインの時間帯が通常と異なっていないかを見極める
こうした確認を定期的に行うことで、セキュリティリスクを未然に防ぐことができます。
まとめ
last
コマンドは、Linuxにおけるユーザー管理やセキュリティ確認において非常に重要なツールです。
シンプルな構文でありながら、ユーザーのログイン情報、再起動履歴、ログアウトの時間まで確認できるので、日々の運用管理に欠かせません。
ログの記録はシステムの健全性を示す鏡ともいえる存在です。
定期的にlastコマンドを実行し、異常がないかをチェックする習慣を身につけておくことが、堅牢なシステム運用につながるでしょう。