Você pode encontrar informações adicionais sobre as ferramentas de linha de comando do seu sistema e seus parâmetros olhando sua "página de manual" (executando man who
, por exemplo).
Nas respectivas páginas do manual:
top
- display Linux processes
who
- show who is logged on
Enquanto estamos nisso, há também:
w
- Show who is logged on and what they are doing.
Um usuário está "logado" quando realizou um "login", ou seja, ele forneceu uma senha ou chave para autenticar no sistema, e o sistema lançou uma "sessão" para eles.
Como você pode ver, who
apenas lista essas sessões de login - geralmente junto com o que a sessão está anexada, como
- uma sessão Xserver (por exemplo,
:0
para a primeira sessão gráfica), - um terminal (
tty
, por exemplo, Ctrl + Alt + F2 ), - ou um pseudo-terminal (
pts
, por exemplo, para uma sessão SSH, emulador de terminal ou programa de multiplexador de terminal)
Existem outras maneiras de iniciar processos que não envolvem uma sessão de login, como
- serviços do sistema (iniciados por
init
,systemd
ou o que seu sistema usar para a inicialização do serviço) - Sessões SSH que não solicitaram um dispositivo tty - isso geralmente acontece quando você dá um comando diretamente após a chamada SSH (
ssh example.com rsync …
) em vez de solicitar um shell interativo (ssh example.com
) - iniciando um processo a partir de uma sessão de login, mas separando-o do shell atual e, portanto, da sessão (por exemplo, usando
disown
)
Tangencialmente, se você quiser saber quais usuários existem no sistema (ambos configurados localmente a partir de /etc/passwd
e qualquer um de um banco de dados externo como o LDAP):
getent passwd
Se você também quiser saber quando eles fizeram o login pela última vez:
lastlog