Você já se perguntou quem está usando o seu servidor linux neste exato momento?
Em ambientes corporativos que tem servidores em produção com linux instalado, saber quem está logado no linux é uma informação essencial para aplicar politicas de segurança que controlam o acesso.
Mesmo que você seja iniciante e ainda está aprendendo a usar comandos linux, não se preocupe, por que será ensinado 4 comandos para descobrir quem está acessando e usando o sistema.
Mas como saber quem está logado no linux e acessando o sistema ?
Como a maioria dos servidores que usam linux no mundo não tem interface gráfica, será utilizada a Linha de Comando para ensinar de forma simples e prática como descobrir quem está logado no seu sistema linux.
São 4 comandos nativos do sistema que serão usados:
- users
- who
- w
- loginctl
Agora chega de conversa e vamos aos exemplos práticos dos comandos.
Comando users
O Primeiro comando é o users, que é simples e mostra somente os nomes das contas de usuários atualmente logados no host/servidor.
No exemplo, é executado o comando users em um sistema linux ubuntu server:
dlncloud@server:~$ users
analista dlncloud rootA saída do comando mostra que atualmente as contas de usuário root, analista e dlncloud estão logados no sistema.
Comando who
Outro comando que podemos usar para saber quem está acessando o linux é o who, mas diferentemente do comando users, o comando who pode exibir algumas informações adicionais sobre usuários que estão conectados no momento.
dlncloud@server:~$ who
root tty1 2022-02-03 02:18
analista tty2 2022-02-03 02:18
dlncloud pts/0 2022-02-03 02:18 (192.168.0.3)No exemplo acima, é exibido as contas de usuário root logado no terminal virtual tty1, analista logado no terminal virtual tty2 e dlncloud no terminal virtual pts/0 que se logou a partir do host que tem o enderçeo IP 192.168.0.3.
Para suprimir informações e mostrar somente a quantidade de usuários logados e saber quem são podemos usar a opção -q minúsculo do comando who.
dlncloud@server:~$ who -q
root analista dlncloud
# users=3Para exibir o cabeçalho do comando who definindo o que informa cada coluna é usada a opção -H, onde a primeira coluna “NAME” tem os nomes das contas logadas no momento:
dlncloud@server:~$ who -H
NAME LINE TIME COMMENT
root tty1 2022-02-03 02:18
analista tty2 2022-02-03 02:18
dlncloud pts/0 2022-02-03 02:18 (192.168.0.3)Comando w
O comando w é semelhante ao comando who, mas além das informações sobre os usuários logados, exibe mais informações.
O cabeçalho mostra, na ordem da esquerda para direita:
- Hora atual.
- Há quanto tempo o sistema está em execução.
- Quantos usuários estão conectados(logados) em terminal virtual.
- E as médias de carga do sistema nos últimos 1, 5 e 15 minutos.
dlncloud@server:~$ w
03:48:46 up 1:31, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 02:18 1:30m 0.04s 0.02s -bash
analista tty2 - 02:18 10.00s 0.05s 0.01s top
dlncloud pts/0 192.168.0.3 02:18 5.00s 0.06s 0.00s wAs colunas na saída do comando w são exibidas da esquerda para direita para cada usuário.
A explicação das principais:
- USER: Nome do usuário logado.
- TTY: Nome do tty usado pelo usuário logado.
- FROM: A partir de onde está logado, o caractere – (hífen) significa logado localmente, quando aparece o endereço IP está acessando a partir de um host remoto.
- WHAT: Mostra o nome do processo atual executado pela conta de usuário no momento que o comando w foi executado.
Para omitir algumas informações da saída do comando w é usada a opção -s ou --short , veja o exemplo:
dlncloud@server:~$ w --short
03:56:04 up 1:39, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM IDLE WHAT
root tty1 - 1:37m -bash
analista tty2 - 7:28 top
dlncloud pts/0 192.168.0.3 4.00s w --shortPara saber mais informações sobre o comando w, consulte o manual executando:
man 1 wComando loginctl
E o último comando dessa dica para saber quem está logado no linux é o loginctl que faz parte do SystemD, esse comando loginctl é usado para controlar o gerenciador de login do SystemD e também para saber quem está logado no sistema.
Executando o comando interno list-users do loginctl é possível ver quem está logado:
dlncloud@server:~$ loginctl list-usersNa saída é exibido quem está logado, o UID de cada conta de usuário, a sessão ativa(que está sendo usada no momento que o comando foi executado).

Para mostrar mais informações, incluindo o que a conta de usuário está executando(processos) usamos o comando interno user-status do loginctl seguido do nome da conta de usuário que deve exibir as informações:
dlncloud@server:~$ loginctl user-status suporte
analista (1001)
Since: Thu 2022-02-03 02:18:34 UTC; 1h 59min ago
State: active
Sessions: *2
Linger: no
Unit: user-1000.slice
├─session-3.scope
│ ├─1023 /bin/login -p --
│ ├─1100 -bash
│ └─1339 top
└─[email protected]
└─init.scope
├─1094 /lib/systemd/systemd --user
└─1095 (sd-pam)
Feb 03 02:18:34 server systemd[1094]: Listening on GnuPG cryptographic agent and passphrase cache (restricted).
Feb 03 02:18:34 server systemd[1094]: Listening on GnuPG cryptographic agent (ssh-agent emulation).
Feb 03 02:18:34 server systemd[1094]: Listening on GnuPG cryptographic agent and passphrase cache.
Feb 03 02:18:34 server systemd[1094]: Listening on debconf communication socket.
Feb 03 02:18:34 server systemd[1094]: Listening on REST API socket for snapd user session agent.
Feb 03 02:18:34 server systemd[1094]: Listening on D-Bus User Message Bus Socket.
Feb 03 02:18:34 server systemd[1094]: Reached target Sockets.
Feb 03 02:18:34 server systemd[1094]: Reached target Basic System.
Feb 03 02:18:34 server systemd[1094]: Reached target Main User Target.
Feb 03 02:18:34 server systemd[1094]: Startup finished in 87ms.Se o comando loginctl for executado sem nenhum comando interno a saída do comando mostra mais informações como o tty e a sessão(session) aberta pelo usuário no momento que se logou no sistema:
dlncloud@server:~$ loginctl
Para inspecionar mais informações sobre a sessão aberta para uma conta de usuário, usamos o comando interno show-session do loginctl, vamos usar a sessão com o ID 5 da conta de usuário dlncloud no exemplo abaixo:
dlncloud@server:~$ loginctl show-session 9
Id=9
User=1001
Name=dlncloud
Timestamp=Wed 2026-02-11 13:25:18 -03
TimestampMonotonic=1095744270
VTNr=4
Seat=seat0
TTY=tty4
Remote=no
Service=login
Scope=session-9.scope
Leader=3311
Audit=9
Type=tty
Class=user
Active=no
State=online
IdleHint=no
IdleSinceHint=1770827115000000
IdleSinceHintMonotonic=1091845056
LockedHint=noNa saída o destaque vai para Service que é o nome do serviço usado para se autenticar no sistema, para remote que com o valor yes significa que o acesso é remoto, em RemoteHost tem a o IP do host que foi usado para se logar no sistema.
É possível encerrar sessões com o comando loginctl, mas é preciso que o comando seja executado com uma conta de usuário com permissão administrativa.
AVISO
É importante informar que ao finalizar uma sessão todos os processos executados na sessão serão encerrados e o usuário será deslogado.
Por exemplo, para fechar a sessão com ID 9 execute o comando loginctl terminate-session seguido do número 9:
root@server:~$ loginctl terminate-session 9Ao executar novamente somente o comando loginctl a sessão 9 não é exibida:
dlncloud@server:~$ loginctl
SESSION UID USER SEAT TTY STATE IDLE SINCE
2 1000 suporte seat0 tty2 active no -
7 0 root seat0 tty3 online no -
2 sessions listed.Conclusão
Espero que os comandos ensinados nessa dica sejam úteis e possa auxiliar em saber quem está logado no sistema e até mesmo obter informações sobre as contas de usuários logadas.
Recomendo também lê o manual do comando loginctl que é o comando mais completo de todos que foram demonstrados aqui.
Ficou com alguma dúvida ou tem uma sugestão, então deixe seu comentário.

