who
コマンドのmanページの説明はwho - show who is logged on
しかし、同様のコマンドwhoami
が存在します。 whoami
のmanページの説明は
whoami - print effective userid
誰もがこれらのコマンドが正確に何をするのか説明できますか?それらはどのように互いに異なりますか?
シェルにrootとしてログインしてwho
と入力すると、これが出力です。
who
root tty1 2014-08-25 14:01 (:0)
root pts/0 2014-09-05 10:22 (:0.0)
root pts/3 2014-09-19 10:08 (xxx.xxx.edu)
接続を確立したすべてのユーザーを効果的に表示します。
ssh ramesh@hostname
who
を再度実行すると、ユーザーrameshの別のエントリが生成されます。
who
root tty1 2014-08-25 14:01 (:0)
root pts/0 2014-09-05 10:22 (:0.0)
root pts/3 2014-09-19 10:08 (xxx.xxx.edu)
ramesh pts/4 2014-09-19 12:11 (xxx.xxx.edu)
root
シェル内では、su ramesh
し、次にwhoami
を与えます。 rameshである現在のユーザーとして出力を取得します。
したがって、who
を使用すると、マシンに現在ログインしているすべてのユーザーのリストが効果的に表示され、whoami
を使用すると、シェルにいる現在のユーザーを確認できます。
who :
現在ログインしているユーザーに関する情報を出力します。
whoami :
whoamiを実行する有効なユーザー名を出力します。
例えば:
mohsen@debian:~$ who ## list logged in usernames
mohsen :0 2014-09-19 16:31 (:0)
mohsen pts/0 2014-09-19 16:32 (:0)
mohsen pts/1 2014-09-19 19:42 (:0)
mohsen@debian:~$ whoami
mohsen ##### print my username (mohsen)
mohsen@debian:~$
who
よりも優れたコマンドもお勧めします:w command
。その出力は次のとおりです。
mohsen@debian:~$ w
21:45:45 up 5:16, 3 users, load average: 0.68, 0.54, 0.46
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
mohsen :0 :0 16:31 ?xdm? 1:40m 0.27s gdm-session-wor
mohsen pts/0 :0 16:32 1.00s 0.15s 0.01s w
mohsen pts/1 :0 19:42 2:03m 0.13s 14.06s /usr/bin/python
次も参照:
last command
、/var/log/btmp and /var/log/wtmp files
who
とwhoami
の違いに注意してください。
who
コマンドは、ログインに使用したアカウント(実際のユーザー情報)を常に表示します。
whoami
コマンドは、効果的なユーザーを表示します。
たとえば、「だらしない」としてログインすると、who
およびwhoami
コマンドは次のように表示されます。
> who
blammy pts/0 2011-04-23 13:43 (123.23.123.123)
> whoami
blammy
これは、ユーザー「blammy」が2011年4月23日13:43にIP「123.23.123.123」からログインしたことを示しています。
その後、su - kapow
、有効なユーザーを「kapow」に変更します。
これで、who
およびwhoami
コマンドは次のように表示されます。
> who
blammy pts/0 2011-04-23 13:43 (123.23.123.123)
> whoami
kapow
who
情報は同じままですが、whoami
情報はsuに基づいて変更されることに注意してください。