[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ファイルが存在しないか、空である可能性があります。

このファイルは、ログイン履歴を記録するために必要です。

以下の手順で確認します。

  1. wtmpファイルの存在を確認します。
ls -l /var/log/wtmp
  1. ファイルが存在しない場合は、システムの再起動やログインを行うことで新しいwtmpファイルが作成されます。
  2. ファイルが存在するが空である場合、システムのログイン履歴が記録されていない可能性があります。

システムの設定を確認し、ログインが正常に行われているかを確認します。

wtmpファイルが破損している場合の修復方法

/var/log/wtmpファイルが破損している場合、lastコマンドの出力が正しく表示されないことがあります。

この場合、以下の手順で修復を試みます。

  1. まず、wtmpファイルのバックアップを作成します。
cp /var/log/wtmp /var/log/wtmp.bak
  1. 次に、wtmpファイルを空にします。
> /var/log/wtmp
  1. システムを再起動するか、ユーザーがログインすることで新しいwtmpファイルが作成されます。

この手順により、破損したwtmpファイルを修復し、正常なログイン履歴を記録できるようになります。

ログイン履歴が多すぎて見づらい場合の対策

ログイン履歴が多すぎて見づらい場合、いくつかの対策があります。

以下の方法を試して、出力を整理することができます。

  1. 表示件数を制限する: -nオプションを使用して、表示する件数を制限します。
last -n 10

これにより、最新の10件のみが表示されます。

  1. 特定のユーザーをフィルタリングする: grepを使用して、特定のユーザーの履歴のみを表示します。
last | grep "user1"
  1. 出力をファイルに保存する: 出力をファイルに保存し、後で確認することで、必要な情報を整理できます。
last > login_history.txt
  1. lessコマンドを使用する: lastコマンドの出力をlessコマンドでページング表示することで、スクロールしながら確認できます。
last | less

これらの対策を講じることで、ログイン履歴を効率的に管理し、必要な情報を簡単に確認できるようになります。

よくある質問

lastコマンドで表示される still logged in とは?

lastコマンドの出力に still logged in と表示される場合、それは指定されたユーザーが現在もシステムにログインしていることを示しています。

このメッセージは、ユーザーがログインしたままセッションを維持していることを意味し、通常はそのユーザーがアクティブな状態であることを示しています。

セッションが終了するまで、この状態は続きます。

wtmpファイルが存在しない場合はどうすればいい?

/var/log/wtmpファイルが存在しない場合、システムのログイン履歴が記録されていないことを意味します。

この場合、以下の手順を試みてください。

  1. システムを再起動することで、新しいwtmpファイルが自動的に作成されることがあります。
  2. ユーザーがログインすることで、wtmpファイルが生成されることもあります。
  3. それでもファイルが作成されない場合は、システムの設定やログインプロセスに問題がないか確認する必要があります。

lastコマンドで過去のログイン履歴が表示されないのはなぜ?

lastコマンドで過去のログイン履歴が表示されない場合、いくつかの原因が考えられます。

  1. wtmpファイルが空または存在しない: wtmpファイルが空であるか、存在しない場合、ログイン履歴は表示されません。
  2. ログイン履歴の保持期間: 一部のシステムでは、ログイン履歴が一定期間を過ぎると自動的に削除されることがあります。

このため、古い履歴が表示されないことがあります。

  1. ファイルの破損: wtmpファイルが破損している場合、正しい履歴が表示されないことがあります。

この場合は、ファイルを修復する必要があります。

これらの要因を確認し、適切な対策を講じることで、過去のログイン履歴を表示できるようにすることができます。

まとめ

この記事では、Linuxのlastコマンドを使用してシステムのログイン履歴を確認する方法や、さまざまなオプションの使い方、トラブルシューティングの手法について詳しく解説しました。

これにより、システム管理者やユーザーは、ログイン履歴を効果的に管理し、セキュリティの向上に役立てることができるでしょう。

ぜひ、実際にlastコマンドを活用して、システムのログイン状況を定期的に確認し、必要に応じて適切な対策を講じてください。

  • URLをコピーしました!
目次から探す