web-dev-qa-db-ja.com

whoコマンドとwhoamiコマンドの違い

whoコマンドのmanページの説明はwho - show who is logged on

しかし、同様のコマンドwhoamiが存在します。 whoamiのmanページの説明は

whoami - print effective userid

誰もがこれらのコマンドが正確に何をするのか説明できますか?それらはどのように互いに異なりますか?

4

シェルに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を使用すると、シェルにいる現在のユーザーを確認できます。

7
Ramesh

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

4
PersianGulf

whowhoamiの違いに注意してください。

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に基づいて変更されることに注意してください。

2
DwB