Por que o comando top mostrando aos usuários que o comando who não é?

1

Trabalhando em um Raspberry Pi 2, rodando o Raspbian GNU / Linux 9 (trecho).

Estou simplesmente tentando entender por que, quando executo o comando top , posso ver alguns usuários que não consigo ver no comando who . Aqui está a saída dos comandos executados no RPi:

$ top
top - 12:36:42 up 2 days, 15:19,  2 users,  load average: 0.29, 0.34, 0.27
Tasks: 138 total,   1 running,  73 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  0.9 sy,  0.0 ni, 97.0 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :   949460 total,   354296 free,    62916 used,   532248 buff/cache
KiB Swap:   102396 total,    30972 free,    71424 used.   811488 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
10907 iceman    20   0    6144   3400   1924 S   2.3  0.4   4:05.37 rsync
10876 maverick  20   0    8128   3300   2740 R   1.6  0.3   0:36.49 top
  376 root      20   0  911240   9648   3164 S   0.7  1.0  31:58.38 dockerd
  663 root      20   0  149932   1728   1020 S   0.7  0.2  28:25.48 Xorg
  674 root      20   0  884620   3848   1764 S   0.7  0.4  22:06.18 docker-co


$ who
maverick   pts/0        2018-11-28 11:23 (73.69.181.86)
maverick   pts/1        2018-11-28 11:58 (73.69.181.86)

Para esclarecer, tentei: who , who -u , who -l , who -p , who -a .

    
por Maverick 28.11.2018 / 13:42

1 resposta

0

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
    
por 29.11.2018 / 14:16