【保存版】Linuxで現在ログイン中のユーザーを確認する方法|who・w・usersコマンドの使い方と違いを解説!

Linux

Linuxサーバーを管理していると、

  • 今ログインしているユーザーは誰?
  • 誰が作業しているの?
  • どの端末からアクセスされている?

といった情報を把握したい場面が多々あります。

この記事では、Linuxで現在ログイン中のユーザーを確認するコマンドを複数紹介し、それぞれの特徴と使い分け方を初心者向けにわかりやすく解説します。

スポンサーリンク

現在のユーザーを確認:whoami

最も基本的な確認方法で、自分自身のログインユーザー名を確認できます。

whoami

実行結果例:

ubuntu

このコマンドは非常にシンプルですが、「今ログインして操作しているユーザー名を知りたいとき」に最適です。

特に以下のケースで活用できます:

  • 複数のターミナルでさまざまなユーザーとしてログインしている場合
  • su コマンドでユーザーを切り替えた後
  • スクリプト実行時に権限を確認したい場合

注意点: whoami は自分自身のユーザー名しか表示しません。他のログインユーザーの情報は表示されません。

ログイン中の全ユーザーを確認:who

他のユーザーを含めて、誰がログインしているかを一覧で確認できます。

who

出力例:

ubuntu   pts/0        2024-05-05 10:00 (192.168.1.101)
admin    pts/1        2024-05-05 10:15 (192.168.1.102)
john     pts/2        2024-05-05 11:20 (10.0.0.5)

この出力から以下の情報が確認できます:

項目内容
ユーザー名ログイン中のユーザーubuntu, admin, john
端末ターミナルセッション(SSHなど)pts/0, pts/1, pts/2
時刻ログインした日時2024-05-05 10:00
ホストリモート接続元のIPアドレスなど(192.168.1.101)

便利なオプション:

  • who -H: ヘッダー行を表示(列の意味が明確になる)
  • who -a: すべての情報を表示(詳細モード)
  • who -b: 最後のシステム起動時間を表示
  • who -u: アイドル時間も表示

実行例(who -H):

NAME     LINE         TIME             COMMENT
ubuntu   pts/0        2024-05-05 10:00 (192.168.1.101)
admin    pts/1        2024-05-05 10:15 (192.168.1.102)

who コマンドは、サーバーにログインしているユーザーの基本情報を確認するのに最適です。

詳細情報を確認:wコマンド

より詳しい情報が欲しい場合は w コマンドがおすすめです。

who コマンドの情報に加えて、各ユーザーが実行しているコマンドやシステムの負荷状況まで確認できます。

w

出力例:

 10:22:01 up 1 day,  2:34,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
ubuntu   pts/0    192.168.1.101    10:00    0.00s  0.02s  0.01s bash
admin    pts/1    192.168.1.102    10:15    2:00   0.01s  0.00s top
john     pts/2    10.0.0.5         11:20    5:00   0.54s  0.54s vim server.conf

出力の見方:

  • 最初の行はシステム情報(起動時間、ユーザー数、ロードアベレージ)
  • 以降の行は各ユーザーの詳細情報:
    • USER: ユーザー名
    • TTY: 端末名
    • FROM: 接続元
    • LOGIN@: ログイン時刻
    • IDLE: アイドル時間(無操作時間)
    • JCPU: このターミナルでの処理時間
    • PCPU: 現在のプロセスの処理時間
    • WHAT: 実行中のコマンド

便利なオプション:

  • w -h: ヘッダー行を非表示
  • w ユーザー名: 特定ユーザーの情報のみ表示(例:w ubuntu
  • w -s: 短い形式で表示(JCPU, PCPUの列を省略)

このコマンドは、誰がシステムで何をしているかをより詳しく知りたい場合に非常に便利です。

特にサーバー管理やトラブルシューティングでよく使われます。

簡易一覧:usersコマンド

ログインユーザーのユーザー名だけを簡単に確認したいときは users コマンドが便利です。

users

実行例:

ubuntu admin john

→ ログイン中のユーザー名だけがスペース区切りで並びます。

このコマンドは:

  • 最も簡潔な出力
  • スクリプトで利用しやすい形式
  • シンプルな確認に最適

同じユーザーが複数回ログインしている場合、そのユーザー名は複数回表示されます:

ubuntu admin ubuntu john

この例では、ubuntuユーザーが2つのセッションでログインしていることがわかります。

その他の補足コマンド

id:自分のユーザーIDやグループ情報を確認

id

出力例:

uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),27(sudo),46(plugdev)

このコマンドでは、現在のユーザーの詳細情報が確認できます:

  • ユーザーID(uid)
  • プライマリグループID(gid)
  • 所属しているグループのリスト

特定のユーザーの情報も確認できます:

id admin

last:過去のログイン履歴を確認

last

出力例:

ubuntu   pts/0        192.168.1.101    Sun May  5 10:00   still logged in
admin    pts/1        192.168.1.102    Sun May  5 10:15   still logged in
john     pts/2        10.0.0.5         Sun May  5 11:20 - 11:45  (00:25)
reboot   system boot  5.10.0-26-amd64  Sun May  4 07:48   still running
ubuntu   pts/0        192.168.1.101    Sat May  4 09:30 - 18:45  (09:15)

last コマンドは、ログイン・ログアウトの履歴を時系列で表示します。「誰がいつログインしていたか」「ログアウトしたか」も確認できます。

便利なオプション:

  • last -10: 最近の10件だけ表示
  • last ユーザー名: 特定ユーザーのログイン履歴のみ表示
  • last reboot: システム再起動の履歴を表示

lastlog:全ユーザーの最終ログイン時刻を確認

lastlog

出力例:

Username         Port     From             Latest
root                                       **Never logged in**
ubuntu           pts/0    192.168.1.101    Sun May  5 10:00:20 +0000 2024
admin            pts/1    192.168.1.102    Sun May  5 10:15:45 +0000 2024
john             pts/2    10.0.0.5         Sun May  5 11:20:12 +0000 2024
mysql                                      **Never logged in**

すべてのユーザーアカウント(システムアカウントも含む)の最終ログイン日時を表示します。

一度もログインしていないユーザーも確認できるため、セキュリティ監査に役立ちます。

まとめ

Linuxで使用中のユーザーを確認するには、状況や目的に応じてコマンドを使い分けるのがポイントです。

コマンド別の役割まとめ:

コマンド用途特徴
whoami今操作している自分のユーザー名を確認したい最もシンプル、自分のユーザー名のみ
whoログイン中の全ユーザーを見たいユーザー、端末、ログイン時間、接続元を表示
wユーザーの作業状況や接続元を詳しく見たい実行中のコマンドやアイドル時間も表示
usersログイン中のユーザー一覧だけ手早く見たいユーザー名のみをスペース区切りで表示
last過去のログイン履歴を確認したい時系列でのログイン・ログアウト履歴
idユーザーのID・グループ情報を知りたいUID、GID、所属グループを表示
lastlogすべてのユーザーの最終ログイン時刻未ログインユーザーも含めて表示

使い分けのポイント:

  • 簡易確認: whoami(自分のみ)または users(全ユーザー)
  • 基本的な監視: who
  • 詳細な状況把握: w
  • セキュリティ監査: lastlastlog

複数人で使うLinuxサーバーやリモート接続の多い環境では、こうしたコマンドを活用して、誰が・いつ・どこからアクセスしているかをすばやく把握できるようにしましょう。

システム管理者にとって、これらのコマンドは日常的なサーバー管理やトラブルシューティングに欠かせないツールです。

コメント

タイトルとURLをコピーしました