whoami - 現在のユーザを確認する

スポンサーリンク

whoamiコマンドは現在のユーザを確認するコマンドになります。

つまり、コマンドはそのまま'Who am I?'(私は誰?)を意味するコマンドになります。

現在のユーザを確認

whoamiコマンドは現在のユーザを確認するコマンドになります。例えば、ubuntuというユーザで実行すると'ubuntu'のようにユーザ名を表示します。

コマンド例

実行結果

また、whoamiコマンドは実際には実効ユーザIDで想定される名前を表示します。なので、ルート権限で実行した場合は、rootと表示されます。

コマンド例

実行結果

whoamiと等価なコマンド

whoamiコマンドは'id -un'と等価なコマンドになります。

コマンド例

実行結果

(おまけ)whoamiプログラムで自分以外のユーザを表示してみる

chmodコマンドでプログラムに対して、SUIDビット(set-user-ID bit)という特別なアクセス権限を付与すると、そのプログラムの所有者の実効ユーザでプログラムを動作させることができます。

これを利用して、whoamiプログラムで自分以外のユーザの名前を表示します。

例えば、whoamiプログラムをカレントディレクトリにコピーし、chownコマンドで所有者情報をrootにし、chmodコマンドでSUIDビットを付与したwhoamiプログラムを用意します。

これで、自分以外のユーザを表示するwhoamiプログラムができます。以下は通常のwhoamiプログラムとコピーしたwhoamiプログラムの実行結果になります。

コマンド例と実行結果

このような方法で、SUIDビットの動作で実効ユーザが変更される様子を確認することができます。

もっと詳しい動作については、whoamiコマンドで呼び出されるseteuid関数が参考になるかもしれません。

seteuid関数は、manコマンドでも確認することができます。

参考

GNU Coreutils: whoami invocation