Linux – ログイン中のユーザー、ログイン履歴を確認する方法

目次

概要

Linux システムで現在ログインしているユーザーやログイン履歴を確認することは、システム管理やセキュリティの観点から非常に重要です。 この記事では、これらのユーザーのログイン情報を取得するための方法について説明します。

コマンド一覧

ログイン情報に関連するコマンドを整理しました。

コマンド 説明 参照するファイル
who 現在ログインしているユーザーの情報を表示します。 /var/run/utmp
w 現在ログインしているユーザーの詳細情報を表示します。 /var/run/utmp
last システムの再起動やユーザーのログイン・ログアウトの履歴を表示します。 /var/log/wtmp
lastlog 各ユーザーの最終ログイン日時と情報を表示します。 /var/log/lastlog
lastb 失敗したログイン試行の履歴を表示します。 /var/log/btmp

現在ログインしているユーザーを確認する

who コマンド

who コマンドを使用すると、現在ログインしているすべてのユーザーの情報を表示することができます。

$ who
nekobean tty7         2025-01-28 16:45
john     pts/0        2025-01-28 17:00 (192.168.1.10)

各カラムの意味は次のようになります:

  1. ユーザー名: ログインしているユーザーの名前。
  2. 端末: ユーザーがログインしている端末名。
  3. ログイン日時: ユーザーがログインした日時。
  4. リモートホスト: ユーザーがリモートからログインしている場合、そのホストの IP アドレス。

w コマンド

w コマンドは、現在ログインしているユーザーとその活動状況を詳細に表示します。

$ w
 17:06:29 up  2:15,  2 users,  load average: 0.08, 0.02, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
nekobean tty7     :0               16:45    2:15m  1:23   0.17s /usr/bin/gnome-shell
john     pts/0    192.168.1.10     17:00    6.00s  0.05s  0.00s /bin/bash

各カラムの意味は次のようになります:

  1. USER: 現在ログインしているユーザーの名前。
  2. TTY: ユーザーがログインしている端末名。
  3. FROM: ユーザーがリモートからログインしている場合、そのホストの IP アドレス。
  4. LOGIN@: ユーザーがログインした日時。
  5. IDLE: ユーザーの端末がアイドル状態(操作されていない状態)である時間。
  6. JCPU: 端末上で実行されたジョブ(ユーザーのプロセス)に費やされた累積 CPU 時間。
  7. PCPU: 現在実行中のプロセスに費やされている CPU 時間。
  8. WHAT: ユーザーが現在実行しているコマンド。

ログイン・認証に関するログ

ログの場所

ログインおよび認証に関するログは以下のパスに格納されています。 これらはバイナリ形式のため、専用のコマンドで確認します。

ファイルパス 説明 形式 コマンド
/var/log/wtmp ユーザーのログイン・ログアウトに関するログ バイナリ last
/var/log/btmp 失敗したログイン試行に関するログ バイナリ lastb
/var/log/lastlog 各ユーザーの最後のログインに関するログ バイナリ lastlog
/var/log/faillog 各ユーザーのログイン失敗回数に関するログ バイナリ
/var/log/auth.log ユーザー認証に関するログ テキスト

/var/log/auth.log: 認証に関するログ

/var/log/auth.log は、Linux システムにおける認証関連のログを保持するファイルです。このファイルには、ログイン試行、認証の成功および失敗、sudo コマンドの使用などの情報が記録されています。以下に /var/log/auth.log の読み方について説明します。

以下に、/var/log/auth.log の例を示します:

Jan 29 19:30:01 ubuntu-PC CRON[257637]: pam_unix(cron:session): session closed for user root
  1. 日時
  2. ホスト名:
  3. プロセス名[PID]: プロセス名と PID
  4. メッセージ

last コマンド: ログイン履歴を確認する

last コマンドの出力は、システムのログイン・ログアウト履歴を表示します。 ログイン履歴は、/var/log/wtmp にバイナリ形式で格納されています。

以下に、last コマンドの出力例を示します:

username tty1         :0               Mon Jan 29 10:00   still logged in
username pts/0        192.168.1.10     Mon Jan 29 09:50 - 10:00  (00:10)
username pts/1        192.168.1.10     Mon Jan 29 09:40 - 09:50  (00:10)
reboot   system boot  5.4.0-65-generic Mon Jan 29 09:30 - 18:49  (09:19)
  1. ログインしたユーザー
  2. ログインに使用したターミナルデバイス
  3. ホスト名
  4. ログイン日時
  5. ログアウト日時
  6. ログインセッション時間

lastlog コマンド: 各ユーザーの最後のログインに関するログ

lastlog コマンドは、各ユーザーの最後のログイン日時を表示します。

以下に、lastlog コマンドの出力例を示します:

Username         Port     From             Latest
root             tty1     :0               Mon Jan 29 10:00:00 +0000 2025
username         pts/0    192.168.1.10     Sun Jan 28 15:30:00 +0000 2025
  1. ユーザー名
  2. ログインに使用したターミナルデバイス
  3. ホスト名
  4. ユーザーが最後にログインした日時

lastb コマンド: 失敗したログイン試行に関するログ

lastb コマンドは、失敗したログイン試行の履歴を表示します。

以下に、lastb コマンドの出力例を示します:

username tty1         :0               Mon Jan 29 10:00 - 10:05  (00:05)
username tty1         :0               Sun Jan 28 15:30 - 15:32  (00:02)
unknown  tty2         192.168.1.15     Sun Jan 28 14:50 - 14:51  (00:01)
  1. ログイン試行したユーザー
  2. ログイン試行したターミナルデバイス
  3. ホスト名
  4. ログイン試行日時
  5. ログアウト試行日時
  6. ログアウト試行が行われたセッション時間

コメント

コメントする

目次