Diferença entre quem e whoami comandos

3

A descrição da página man do comando who é who - show who is logged on

Mas existe um comando semelhante whoami . A descrição da página man de whoami é

whoami - print effective userid

Alguém pode explicar o que exatamente esses comandos fazem? Como eles são diferentes um do outro?

    
por narendra-choudhary 19.09.2014 / 19:07

3 respostas

7

Estou logando como root no meu shell e digitando who e esta é a saída.

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)

Ele mostra efetivamente todos os usuários que estabeleceram uma conexão.

ssh ramesh@hostname

Executar who novamente resultará em outra entrada para o usuário 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)

Dentro do shell root , apenas faço um su ramesh e dou whoami . Ele vai me dar a saída como o usuário atual que é ramesh.

Então, efetivamente, com who , aparece a lista de todos os usuários atualmente conectados à máquina e, com whoami , você pode conhecer o usuário atual que está no shell.

    
por 19.09.2014 / 19:13
3

who : Imprime informações sobre usuários que estão conectados no momento.

whoami : Imprimir nome de usuário efetivo de ser executado whoami.

Por exemplo:

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:~$ 

Eu também recomendo um comando melhor que who : o w command . Sua saída é:

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

Veja também:

last command , /var/log/btmp and /var/log/wtmp files

    
por 19.09.2014 / 19:13
0

Observe a diferença entre who e whoami .

O comando who sempre exibirá a conta que você usou para efetuar login (as informações reais do usuário).

O comando whoami mostrará seu usuário efetivo.

Por exemplo, se você logar como "blammy", os comandos who e whoami exibirão algo assim:

> who
blammy  pts/0  2011-04-23 13:43 (123.23.123.123)

> whoami
blammy

Isso indica que o usuário "blammy" fez log in em 23 de abril de 2011 às 13:43 do ip "123.23.123.123".

Se você executar su - kapow , você muda seu usuário efetivo para ser "kapow".

Agora, os comandos who e whoami exibirão algo assim:

> who
blammy  pts/0  2011-04-23 13:43 (123.23.123.123)

> whoami
kapow

Observe que as informações de who permanecem as mesmas mas as informações de whoami são alteradas com base na su.

    
por 23.05.2018 / 20:58