Linux – lastコマンドの使い方 – システムのログイン履歴の確認
lastコマンドは、Linuxシステムでユーザーのログイン履歴を確認するために使用されます。
このコマンドは、/var/log/wtmpファイルに記録されたログイン・ログアウト情報を表示します。
デフォルトでは、最新のログイン履歴から順に表示され、ユーザー名、端末、接続元IPアドレス、ログイン・ログアウトの日時などが確認できます。
特定のユーザーの履歴を確認する場合は、last ユーザー名と入力します。
lastコマンドとは
lastコマンドは、LinuxやUnix系のオペレーティングシステムにおいて、システムのログイン履歴を表示するためのコマンドです。
このコマンドを使用することで、ユーザーがいつ、どの端末からログインしたのか、またはログアウトしたのかを確認することができます。
lastコマンドは、システムのセキュリティやトラブルシューティングに役立つ情報を提供し、特に不正アクセスの監視やユーザーの活動の追跡に有用です。
表示される情報は、通常、/var/log/wtmpファイルに記録されているデータに基づいています。
これにより、過去のログインセッションを簡単に確認できるため、システム管理者にとって非常に重要なツールとなっています。
lastコマンドの基本的な使い方
全ログイン履歴の表示
lastコマンドを単独で実行すると、全てのユーザーのログイン履歴が表示されます。
これにより、システムにアクセスしたユーザーの情報を一目で確認できます。
以下は、全ログイン履歴を表示するコマンドの例です。
lastuser1 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 user1user1 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/0user1 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 5user1 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 10user1 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 -Ruser1 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 -Fuser1 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 -xreboot 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 -auser1 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 -duser1 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コマンドを実行する例です。
lastbuser1 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.txtlessコマンドを使用する:lastコマンドの出力をlessコマンドでページング表示することで、スクロールしながら確認できます。
last | lessこれらの対策を講じることで、ログイン履歴を効率的に管理し、必要な情報を簡単に確認できるようになります。
まとめ
この記事では、Linuxのlastコマンドを使用してシステムのログイン履歴を確認する方法や、さまざまなオプションの使い方、トラブルシューティングの手法について詳しく解説しました。
これにより、システム管理者やユーザーは、ログイン履歴を効果的に管理し、セキュリティの向上に役立てることができるでしょう。
ぜひ、実際にlastコマンドを活用して、システムのログイン状況を定期的に確認し、必要に応じて適切な対策を講じてください。