Linuxで作業していると、「今、自分はどのユーザーでログインしているのか?」を確認したくなる場面がよくあります。
たとえば、
- 「sudoした後に、まだrootになってる?」
- 「別のユーザーに切り替えたけど、今誰だっけ?」
そんなときに便利なのが、whoami
コマンドです。
この記事では、Linuxにおけるwhoami
の基本的な使い方と、id
やwho
などの関連コマンドとの違いもあわせてわかりやすく解説します。
whoamiとは?どんなコマンド?

whoami
は、「今この端末で操作しているユーザーのユーザー名を表示する」ための非常にシンプルなコマンドです。
読み方は「フーアムアイ(Who am I?)」=「私は誰?」という意味です。
このコマンドは以下のような状況で特に役立ちます:
- 複数のターミナルウィンドウで異なるユーザーとしてログインしている場合
su
やsudo
コマンドでユーザーを切り替えた後- シェルスクリプト内でユーザー権限を確認する場合
- サーバー管理で複数のマシンに接続している場合
基本的な使い方
whoami
コマンドの使い方は非常にシンプルです。オプションなしでそのまま実行するだけです。
whoami
これを実行するだけで、現在操作しているユーザー名が表示されます。
実行例:
$ whoami
ubuntu
この例では、現在「ubuntu」というユーザーでログインしていることがわかります。
特筆すべきは、whoami
コマンドにはオプションがほとんどない点です。
シンプルさがこのコマンドの美点でもあります。
whoamiとsudoの組み合わせ例

sudo
でコマンドを一時的にroot権限で実行した後、本当にrootとして動いているか確認したいときにも便利です。
例:
$ whoami
ubuntu
$ sudo whoami
root
この例から、以下のことがわかります:
- 通常は「ubuntu」ユーザーとして操作している
sudo
をつけると一時的に「root」ユーザーとして実行される
これは権限の違いを理解するのに役立ちます。
sudo
は一時的にroot権限でコマンドを実行するだけで、ユーザー自体を完全に切り替えるわけではありません。
注意点:
sudo whoami
の結果は「root」と表示されますが、これはあくまでwhoami
コマンドの実行時だけroot権限になっているということです- その後の通常のコマンドは、再度
sudo
を付けない限り元のユーザー権限で実行されます
whoamiと似ている他のコマンドとの違い
Linuxにはユーザー情報を表示するコマンドがいくつかあり、それぞれ少しずつ用途が異なります。
コマンド | 役割 | 出力例 |
---|---|---|
whoami | 現在の「実行中ユーザー名」を表示(もっともシンプル) | ubuntu |
who | 今システムにログインしている全ユーザーを一覧表示 | ubuntu tty1 2023-05-19 09:15 |
id | ユーザー名・UID・所属グループなど詳細情報を表示 | uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),27(sudo) |
logname | 最初にログインしたユーザー名を表示(ユーザー切替後も元のユーザーを表示) | ubuntu |
w | ログイン中のユーザーとその作業内容を表示 | 詳細な活動情報付きのユーザー一覧 |
idコマンドの例
$ id
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),27(sudo)
id
コマンドはwhoami
より詳細な情報を提供します:
uid=1000(ubuntu)
– ユーザーIDと名前gid=1000(ubuntu)
– プライマリグループIDと名前groups=...
– 所属する全グループのリスト
whoコマンドの例
$ who
ubuntu tty1 2023-05-19 09:15
ubuntu pts/0 2023-05-19 10:22 (192.168.1.5)
who
コマンドはシステムに現在ログインしている全ユーザーの情報を表示します:
- ユーザー名
- 使用中の端末
- ログイン日時
- リモート接続の場合はIPアドレス
よくある活用例・シェルスクリプトでの使い道

whoami
コマンドは特にシェルスクリプト内で役立ちます。
例1:rootユーザーチェック
特定の操作をrootユーザーのみに制限するスクリプト:
#!/bin/bash
if [ "$(whoami)" != "root" ]; then
echo "このスクリプトはroot権限で実行してください"
exit 1
fi
echo "root権限での作業を実行中..."
# ここに特権が必要な処理を記述
例2:ユーザー別の処理分岐
ユーザーによって異なる処理を行うスクリプト:
#!/bin/bash
current_user=$(whoami)
case $current_user in
"admin")
echo "管理者モードで実行します"
# 管理者用の処理
;;
"www-data")
echo "ウェブサーバー権限で実行します"
# ウェブサーバー用の処理
;;
*)
echo "このユーザー ($current_user) には権限がありません"
exit 1
;;
esac
例3:ログファイルにユーザー情報を記録
操作ログにユーザー名を残すスクリプト:
#!/bin/bash
echo "$(date) - ユーザー $(whoami) がスクリプトを実行しました" >> /var/log/script-audit.log
# 以下、スクリプトの本体
まとめ
whoami
は、Linux操作において自分の権限や状態を瞬時に確認できる基本かつ重要なコマンドです。
今日のおさらい:
whoami
は「今操作しているユーザー名」を表示するシンプルなコマンドsudo whoami
との組み合わせで、権限の切り替え確認に便利id
はより詳細な情報(UID、グループ情報など)が欲しい時に使うwho
やw
はシステム全体のユーザー状況を確認したい時に使う- シェルスクリプト内でユーザー権限チェックやログ記録に活用できる
コマンドとしてはとても単純ですが、日々のシステム管理やトラブルシューティングで非常に役立ちます。
特に複数のサーバーやユーザーアカウントを行き来する管理者にとっては必須のコマンドと言えるでしょう。
シンプルながら実用性抜群のコマンドなので、ぜひ日々のLinux操作に活用してみてください!
コメント