新Linux入門|Linuxでログイン履歴を確認しユーザーアクセスを追跡する

 Linuxシステムを管理していると、「誰が、いつ、どの端末からログインしたのか?」を知りたい場面がよくあります。
特にセキュリティ管理やトラブル発生時の調査では、ユーザーのログイン履歴を確認することが非常に重要です。

このようなときに役立つのが lastコマンド です。
 このコマンドを使うことで、システムにログインしたすべてのユーザーの履歴を時系列に表示できます。
 履歴データは /var/log/wtmp ファイルに保存されており、ログイン・ログアウト・再起動などの記録が詳細に残されています。

 ここでは、last コマンドを使ってユーザーアクセスを追跡する方法を、わかりやすく解説していきます。

💡 lastコマンドの概要

last コマンドは、Linuxシステムのログイン・ログアウト履歴を表示するコマンドです。
 システムログ /var/log/wtmp に記録された情報をもとに、どのユーザーがいつログインしたのかを一覧で確認できます。

項目内容
コマンド名last
主な用途ユーザーのログイン履歴を確認する。
参照するログファイル/var/log/wtmp
管理対象ローカルログイン、SSHログイン、システム起動(reboot)など

🪶 ポイント

  • SSHログインやコンソールログイン(tty)など、さまざまなログイン方法が記録されます。
  • ログの中には、reboot(システム再起動)やshutdownの履歴も含まれます。

⚙️ コマンド書式

last [オプション] [ユーザー名]
引数説明
ユーザー名特定ユーザーのログイン履歴を表示
オプション出力形式を制御(件数制限、ホスト名表示制御など)

🧾 主なオプション

オプション説明
-aホスト名を最後の列に表示する。
-dIPアドレスをホスト名に変換して表示する。
-f <file>指定したファイルから履歴を読み込む。
-iIPアドレスをそのまま表示(名前解決しない)
-n <num>表示する行数を制限する。
-Rホスト名の列を非表示にする。

💬 補足
 /var/log/wtmp はシステムによって自動でローテーションされ、古いログは /var/log/wtmp.1 や /var/log/wtmp-* として保存されます。

💻 使用例と出力結果

① 基本的な使用例

[suzuki@AlmaLinux ~]$ last

出力例

suzuki   pts/0        :0               Mon Nov 25 01:47   still logged in
tanaka   pts/1        192.168.1.5      Mon Nov 25 01:40 - 01:46  (00:06)
root     tty1         :0               Mon Nov 25 01:30 - 01:40  (00:10)
reboot   system boot  5.14.0-427.13.1. Mon Nov 25 01:25   still running

🧩 出力の見方

項目内容
ユーザー名ログインしたユーザー
端末名pts/0 や tty1 など(SSH・ローカルなど)
ホスト/IPログイン元(:0 はローカル)
日付ログイン開始日時
セッション時間ログアウトまでの時間、または still logged in(現在ログイン中)

② 特定のユーザー(tanaka)の履歴を確認

[suzuki@AlmaLinux ~]$ last tanaka

出力例

tanaka   pts/1        192.168.1.5      Mon Nov 25 01:40 - 01:46  (00:06)
tanaka   pts/1        192.168.1.5      Sun Nov 24 22:50 - 23:10  (00:20)

💡 解説
特定ユーザーのみに絞って履歴を確認できます。
不正アクセスや特定ユーザーの操作時間を調べたい場合に便利です。

③ 最新の10件だけを表示

[suzuki@AlmaLinux ~]$ last -n 10

出力例

suzuki   pts/0        :0               Mon Nov 25 01:47   still logged in
tanaka   pts/1        192.168.1.5      Mon Nov 25 01:40 - 01:46  (00:06)
watanabe pts/2        :0               Mon Nov 25 01:10 - 01:20  (00:10)
reboot   system boot  5.14.0-427.13.1. Mon Nov 25 00:35   still running

🧠 ポイント
履歴が長い場合でも、-n オプションで直近ログだけをすぐに確認できます。

④ rootユーザーの直近2回のログイン履歴

[suzuki@AlmaLinux ~]$ last -n 2 root

出力例

root     tty1         :0               Mon Nov 25 00:40 - 01:00  (00:20)
root     pts/0        192.168.1.10     Sun Nov 24 22:00 - 22:30  (00:30)

🔐 セキュリティ面でのチェックポイント

  • 「root」がどの端末からアクセスしているかを把握できる。
  • 異常なIPアドレスからの接続がないか確認できる。

📂 lastコマンドが参照するログファイル

last コマンドは内部的に以下のログを読み取って動作します。

ファイル名役割
/var/log/wtmp現在のログイン履歴を保持
/var/log/wtmp.1過去にローテーションされた履歴
/var/log/btmpログイン失敗の履歴(lastb コマンドで確認可能)

💬 補足
lastb コマンドを使うと、失敗したログイン履歴(不正アクセスの兆候)を確認できます。
これはセキュリティ監査では非常に重要な情報です。

🔍 まとめ

last コマンドは、「誰がいつ、どこからログインしたか」 を把握できる強力なツールです。
システム運用やセキュリティ監査では欠かせない存在です。

特に次のような目的で役立ちます。

  • ユーザー操作履歴の追跡
  • 不正アクセスの検出
  • システム管理の監査記録の確認

AlmaLinux 9.6 では、last コマンドは標準で使用可能です。
日常的にこのコマンドを活用し、ログイン履歴を定期的にチェックすることで、
より安全で透明性の高いシステム運用が実現できます✨