[Linux] lastコマンドの使い方 – システムのログイン履歴の確認
last
コマンドは、Linuxシステムでユーザーのログイン履歴を確認するために使用されます。
このコマンドは、/var/log/wtmp
ファイルに記録されたログイン・ログアウト情報を表示します。
デフォルトでは、最新のログイン履歴から順に表示され、ユーザー名、端末、接続元IPアドレス、ログイン・ログアウトの日時などが確認できます。
特定のユーザーの履歴を確認する場合は、last ユーザー名
と入力します。
- lastコマンドの基本的な使い方
- 各種オプションの活用法
- lastbコマンドとの違い
- ログイン履歴のトラブルシューティング
- 応用例による活用方法
lastコマンドとは
last
コマンドは、LinuxやUnix系のオペレーティングシステムにおいて、システムのログイン履歴を表示するためのコマンドです。
このコマンドを使用することで、ユーザーがいつ、どの端末からログインしたのか、またはログアウトしたのかを確認することができます。
last
コマンドは、システムのセキュリティやトラブルシューティングに役立つ情報を提供し、特に不正アクセスの監視やユーザーの活動の追跡に有用です。
表示される情報は、通常、/var/log/wtmp
ファイルに記録されているデータに基づいています。
これにより、過去のログインセッションを簡単に確認できるため、システム管理者にとって非常に重要なツールとなっています。
lastコマンドの基本的な使い方
全ログイン履歴の表示
last
コマンドを単独で実行すると、全てのユーザーのログイン履歴が表示されます。
これにより、システムにアクセスしたユーザーの情報を一目で確認できます。
以下は、全ログイン履歴を表示するコマンドの例です。
last
user1 pts/0 192.168.1.10 Mon Oct 2 10:00 - 10:30 (00:30)
user2 pts/1 192.168.1.11 Mon Oct 2 09:00 - 09:15 (00:15)
特定のユーザーのログイン履歴を確認する
特定のユーザーのログイン履歴を確認するには、last
コマンドにユーザー名を指定します。
これにより、そのユーザーの過去のログイン情報のみが表示されます。
以下は、特定のユーザーのログイン履歴を表示するコマンドの例です。
last user1
user1 pts/0 192.168.1.10 Mon Oct 2 10:00 - 10:30 (00:30)
user1 pts/1 192.168.1.12 Sun Oct 1 15:00 - 15:45 (00:45)
特定の端末からのログイン履歴を確認する
特定の端末からのログイン履歴を確認するには、端末名を指定してlast
コマンドを実行します。
これにより、指定した端末からのログイン情報が表示されます。
以下は、特定の端末のログイン履歴を表示するコマンドの例です。
last pts/0
user1 pts/0 192.168.1.10 Mon Oct 2 10:00 - 10:30 (00:30)
user3 pts/0 192.168.1.13 Sun Oct 1 14:00 - 14:30 (00:30)
ログイン履歴の件数を制限する
表示するログイン履歴の件数を制限するには、-n
オプションを使用します。
このオプションを指定することで、最新のn件のみを表示することができます。
以下は、最新の5件のログイン履歴を表示するコマンドの例です。
last -n 5
user1 pts/0 192.168.1.10 Mon Oct 2 10:00 - 10:30 (00:30)
user2 pts/1 192.168.1.11 Mon Oct 2 09:00 - 09:15 (00:15)
user3 pts/2 192.168.1.12 Sun Oct 1 16:00 - 16:30 (00:30)
user4 pts/3 192.168.1.13 Sun Oct 1 14:00 - 14:30 (00:30)
user5 pts/4 192.168.1.14 Sat Sep 30 12:00 - 12:30 (00:30)
lastコマンドのオプション
-nオプション:表示件数の制限
-n
オプションを使用すると、表示するログイン履歴の件数を制限できます。
例えば、最新の10件のみを表示したい場合は、以下のようにコマンドを実行します。
last -n 10
user1 pts/0 192.168.1.10 Mon Oct 2 10:00 - 10:30 (00:30)
user2 pts/1 192.168.1.11 Mon Oct 2 09:00 - 09:15 (00:15)
user3 pts/2 192.168.1.12 Sun Oct 1 16:00 - 16:30 (00:30)
user4 pts/3 192.168.1.13 Sun Oct 1 14:00 - 14:30 (00:30)
user5 pts/4 192.168.1.14 Sat Sep 30 12:00 - 12:30 (00:30)
user6 pts/5 192.168.1.15 Sat Sep 30 11:00 - 11:30 (00:30)
user7 pts/6 192.168.1.16 Fri Sep 29 10:00 - 10:30 (00:30)
user8 pts/7 192.168.1.17 Fri Sep 29 09:00 - 09:15 (00:15)
user9 pts/8 192.168.1.18 Thu Sep 28 08:00 - 08:30 (00:30)
user10 pts/9 192.168.1.19 Thu Sep 28 07:00 - 07:15 (00:15)
user11 pts/10 192.168.1.20 Wed Sep 27 06:00 - 06:30 (00:30)
-Rオプション:ホスト名の非表示
-R
オプションを使用すると、表示されるログイン履歴からホスト名を非表示にできます。
これにより、出力がシンプルになります。
以下は、ホスト名を非表示にするコマンドの例です。
last -R
user1 pts/0 Mon Oct 2 10:00 - 10:30 (00:30)
user2 pts/1 Mon Oct 2 09:00 - 09:15 (00:15)
user3 pts/2 Sun Oct 1 16:00 - 16:30 (00:30)
-Fオプション:ログイン・ログアウトの詳細な時刻表示
-F
オプションを使用すると、ログインおよびログアウトの詳細な時刻を表示できます。
これにより、より正確な時間情報を得ることができます。
以下は、詳細な時刻を表示するコマンドの例です。
last -F
user1 pts/0 192.168.1.10 Mon Oct 2 10:00:00 2023 - 10:30:00 2023 (00:30)
user2 pts/1 192.168.1.11 Mon Oct 2 09:00:00 2023 - 09:15:00 2023 (00:15)
-xオプション:シャットダウンや再起動の履歴表示
-x
オプションを使用すると、シャットダウンや再起動の履歴も表示されます。
これにより、システムの状態変化を確認することができます。
以下は、シャットダウンや再起動の履歴を表示するコマンドの例です。
last -x
reboot system boot 5.4.0-42-generic Mon Oct 2 10:00 - 10:30 (00:30)
shutdown system boot 5.4.0-42-generic Mon Oct 2 09:00 - 09:15 (00:15)
-aオプション:リモートホストのIPアドレスを表示
-a
オプションを使用すると、リモートホストのIPアドレスを表示できます。
これにより、どのIPアドレスからログインが行われたかを確認できます。
以下は、リモートホストのIPアドレスを表示するコマンドの例です。
last -a
user1 pts/0 Mon Oct 2 10:00 - 10:30 (192.168.1.10)
user2 pts/1 Mon Oct 2 09:00 - 09:15 (192.168.1.11)
-dオプション:IPアドレスをホスト名に変換
-d
オプションを使用すると、表示されるIPアドレスをホスト名に変換します。
これにより、IPアドレスの代わりにホスト名が表示され、よりわかりやすくなります。
以下は、IPアドレスをホスト名に変換するコマンドの例です。
last -d
user1 pts/0 host1.example.com Mon Oct 2 10:00 - 10:30 (00:30)
user2 pts/1 host2.example.com Mon Oct 2 09:00 - 09:15 (00:15)
lastbコマンドとの違い
lastbコマンドの概要
lastb
コマンドは、last
コマンドと同様にログイン履歴を表示するためのコマンドですが、主に不正ログインの試行を記録した情報を表示します。
lastb
は、/var/log/btmp
ファイルに記録されたデータを基にしており、成功しなかったログイン試行の履歴を確認することができます。
このコマンドは、セキュリティ監視や不正アクセスの調査に役立ちます。
lastbコマンドで確認できる情報
lastb
コマンドを実行すると、以下のような情報が表示されます。
- 不正ログインを試みたユーザー名
- 試行された端末名
- ログインを試みた日時
- 試行元のIPアドレスまたはホスト名
以下は、lastb
コマンドを実行する例です。
lastb
user1 pts/0 192.168.1.20 Mon Oct 2 10:00 - 10:01 (00:01)
user2 pts/1 192.168.1.21 Mon Oct 2 09:00 - 09:01 (00:01)
lastコマンドとlastbコマンドの使い分け
last
コマンドとlastb
コマンドは、それぞれ異なる目的で使用されます。
以下のポイントを参考に使い分けると良いでしょう。
コマンド | 用途 | 説明 |
---|---|---|
last | 成功したログイン履歴の表示 | ユーザーが正常にログインした履歴を確認 |
lastb | 不正ログイン試行の表示 | 失敗したログイン試行を確認し、セキュリティを強化 |
- last: システムに正常にログインしたユーザーの履歴を確認するために使用します。
システムの利用状況を把握するのに役立ちます。
- lastb: 不正アクセスの試行を監視するために使用します。
セキュリティ上の問題を早期に発見するために重要です。
このように、両方のコマンドを適切に使い分けることで、システムのセキュリティを強化し、ユーザーの活動を把握することができます。
応用例:lastコマンドの活用
ログイン履歴をファイルに保存する
last
コマンドの出力をファイルに保存することで、後から確認したり、分析したりすることができます。
リダイレクトを使用して、出力をテキストファイルに保存することができます。
以下は、ログイン履歴をlogin_history.txt
というファイルに保存するコマンドの例です。
last > login_history.txt
このコマンドを実行すると、現在のログイン履歴がlogin_history.txt
ファイルに保存されます。
特定の期間のログイン履歴を確認する
特定の期間のログイン履歴を確認するには、last
コマンドの出力をgrep
コマンドと組み合わせて使用します。
例えば、特定の日付のログイン履歴を確認する場合、以下のようにコマンドを実行します。
last | grep "Oct 2"
このコマンドは、10月2日のログイン履歴のみを表示します。
リモート接続の履歴を確認する
リモート接続の履歴を確認するには、last
コマンドの出力をフィルタリングして、特定のIPアドレスやホスト名を持つ接続を探します。
以下は、特定のIPアドレスからの接続を確認するコマンドの例です。
last | grep "192.168.1.10"
このコマンドは、192.168.1.10からのログイン履歴を表示します。
lastコマンドの出力をgrepでフィルタリングする
last
コマンドの出力をgrep
でフィルタリングすることで、特定のユーザーや条件に合ったログイン履歴を簡単に抽出できます。
例えば、特定のユーザーのログイン履歴を確認する場合、以下のようにコマンドを実行します。
last | grep "user1"
このコマンドは、user1
のログイン履歴のみを表示します。
lastコマンドの出力をawkで整形する
awk
コマンドを使用して、last
コマンドの出力を整形することができます。
例えば、ユーザー名とログイン時刻のみを表示する場合、以下のようにコマンドを実行します。
last | awk '{print $1, $4, $5, $6, $7}'
このコマンドは、ユーザー名とログイン時刻を整形して表示します。
出力結果の例は以下の通りです。
user1 Mon Oct 2 10:00
user2 Mon Oct 2 09:00
これらの応用例を活用することで、last
コマンドをより効果的に利用し、システムのログイン履歴を管理することができます。
lastコマンドのトラブルシューティング
履歴が表示されない場合の対処法
last
コマンドを実行しても履歴が表示されない場合、いくつかの原因が考えられます。
まず、/var/log/wtmp
ファイルが存在しないか、空である可能性があります。
このファイルは、ログイン履歴を記録するために必要です。
以下の手順で確認します。
wtmp
ファイルの存在を確認します。
ls -l /var/log/wtmp
- ファイルが存在しない場合は、システムの再起動やログインを行うことで新しい
wtmp
ファイルが作成されます。 - ファイルが存在するが空である場合、システムのログイン履歴が記録されていない可能性があります。
システムの設定を確認し、ログインが正常に行われているかを確認します。
wtmpファイルが破損している場合の修復方法
/var/log/wtmp
ファイルが破損している場合、last
コマンドの出力が正しく表示されないことがあります。
この場合、以下の手順で修復を試みます。
- まず、
wtmp
ファイルのバックアップを作成します。
cp /var/log/wtmp /var/log/wtmp.bak
- 次に、
wtmp
ファイルを空にします。
> /var/log/wtmp
- システムを再起動するか、ユーザーがログインすることで新しい
wtmp
ファイルが作成されます。
この手順により、破損したwtmp
ファイルを修復し、正常なログイン履歴を記録できるようになります。
ログイン履歴が多すぎて見づらい場合の対策
ログイン履歴が多すぎて見づらい場合、いくつかの対策があります。
以下の方法を試して、出力を整理することができます。
- 表示件数を制限する:
-n
オプションを使用して、表示する件数を制限します。
last -n 10
これにより、最新の10件のみが表示されます。
- 特定のユーザーをフィルタリングする:
grep
を使用して、特定のユーザーの履歴のみを表示します。
last | grep "user1"
- 出力をファイルに保存する: 出力をファイルに保存し、後で確認することで、必要な情報を整理できます。
last > login_history.txt
less
コマンドを使用する:last
コマンドの出力をless
コマンドでページング表示することで、スクロールしながら確認できます。
last | less
これらの対策を講じることで、ログイン履歴を効率的に管理し、必要な情報を簡単に確認できるようになります。
よくある質問
まとめ
この記事では、Linuxのlast
コマンドを使用してシステムのログイン履歴を確認する方法や、さまざまなオプションの使い方、トラブルシューティングの手法について詳しく解説しました。
これにより、システム管理者やユーザーは、ログイン履歴を効果的に管理し、セキュリティの向上に役立てることができるでしょう。
ぜひ、実際にlast
コマンドを活用して、システムのログイン状況を定期的に確認し、必要に応じて適切な対策を講じてください。