who, w e last: Inspecionando Logins e Sessões
O que você vai conseguir fazer
- Verificar com `who` e `w` quem está logado agora e o que cada um está fazendo
- Rastrear logins passados e o histórico de reboot com `last`
- Escolher entre os comandos que mostram o "agora" e o que mostra o "passado"
Pré-requisitos (leia estes primeiro)
Quem está usando este servidor agora?
who para ver quem está logado agora. Use w para ver o que estão fazendo. Use last para ver quem fez login no passado.Aprenda primeiro a rota de fuga: quando a tela parece travada
O last imprime muito histórico. A saída pode rolar sem parar, como se nunca fosse terminar. Veja como sair.
| O que você vê | Como sair |
|---|---|
| A saída rola sem parar | Pressione Ctrl+C para interromper |
Aparece : ou (END) e a tela para |
Um pager está rodando - a ferramenta que mostra saídas longas uma tela por vez, como o less. Pressione q para sair |
O who não imprime nada |
Não é falha. Ninguém está logado. No WSL ou em um container o arquivo de registro pode estar vazio |
| Você nunca quis tanta saída assim | Limite a quantidade já no início: last -n 5 |
who, w e last apenas exibem informações. Executá-los não muda nenhuma configuração, então experimente sem medo.
O Que Você Vai Aprender
- Como listar usuários atualmente logados com
who - Como verificar a atividade de cada usuário e a carga do servidor com
w - Como consultar o histórico de logins passados com
last - Como inspecionar o histórico de reboot e inicialização com
last reboot - Quando usar
who/w(agora) vslast(passado)
1. Qual a diferença entre who, w e last?
Conclusão:
whoewmostram quem está logado agora, enquantolastmostra o histórico de logins passados.wé mais detalhado quewhoe revela o que cada usuário está fazendo.
who e w mostram o estado de login ao vivo, e last mostra o histórico.who é o simples. O w acrescenta "o que estão fazendo" ao mesmo quadro.O que é uma sessão
Uma sessão é um período contínuo de uso, desde o momento em que o usuário faz login até o logout. "Sessão de login" e "conexão" descrevem quase a mesma ideia. Se a mesma pessoa entra de dois lugares, são duas sessões.
| Comando | O que mostra | Tipo de informação |
|---|---|---|
who |
Quem está logado agora | Agora (ao vivo) |
w |
Agora + atividade de cada usuário | Agora (ao vivo, detalhado) |
last |
Histórico de logins passados | Passado (log) |
who e w leem dados de sessão ao vivo (/run/utmp, que não existe em alguns ambientes), enquanto last lê um log acumulado (/var/log/wtmp). Por isso apenas last pode mostrar pessoas que já fizeram logout.
2. Como vejo quem está logado agora?
Conclusão: Basta digitar
whopara listar o nome, terminalUm programa interativo que interpreta os comandos digitados e os executa. e horário de login de cada usuário logado.
who sozinho. Não precisa de argumentos ou opções.$ who
lina tty1 2026-06-05 09:12 linny pts/0 2026-06-05 10:03 (192.168.1.20)
tty1 e pts/0?tty1 é um console conectado diretamente à máquina. pts/0 é um terminal virtual pela rede, como o SSH. O (192.168.1.20) à direita é o IP de origem, mostrado para logins remotos.Colunas (da esquerda para a direita)
- Nome de usuário
- Terminal (
tty= físico,pts= pseudo-terminal = conexão remota) - Data e hora do login
- Host / IP de origem (se houver)
who am i e você verá apenas a linha da sua própria sessão. Note os espaços -- são três palavras separadas.$ who am i
linny pts/0 2026-06-05 10:03 (192.168.1.20)
O Erro da Lina: Confundir whoami com who am i
whoami e só apareceu um nome. Sem terminal, sem horário.whoami - sem espaços, uma palavra - imprime apenas seu nome de usuário.who?who am i - com espaços, três palavras - tira apenas a sua linha da saída do who.who am i (com espaços, três palavras) e whoami (sem espaços, uma palavra) são comandos diferentes. whoami não é uma opção do who. São fáceis de confundir, então fique atento.
3. Como vejo o que cada usuário está fazendo?
Conclusão:
wadiciona ao quewhomostra -- para cada usuário ele exibe o comando que está executando agora, mais a média de carga do servidor, tudo em uma tela.
w serve. A linha do topo mostra o estado geral do servidor, e cada linha abaixo mostra o comando que cada usuário está executando.$ w
10:15:32 up 2 days, 3:41, 2 users, load average: 0.15, 0.10, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT lina tty1 - 09:12 1:03m 0.20s 0.20s -bash linny pts/0 192.168.1.20 10:03 2.00s 0.10s 0.05s w
up), quantos usuários estão logados e a média de carga.O que significa load average
O load average é um número para quanto trabalho está acumulado, incluindo o que ainda espera a vez. Trate-o como um medidor de movimento. Pense na fila do caixa: ele se aproxima do número de pessoas paradas nela. Quanto menor, mais tranquilo.
Colunas principais do w
USER/TTY/FROM: quem, qual terminal, de ondeLOGIN@: horário do loginIDLE: tempo desde a última atividade (mais longo = mais ocioso)JCPU/PCPU: quanto tempo de CPU foi usado (pode pular no começo)WHAT: o comando em execução agora
WHAT me diz que eu estou apenas no -bash (um shell), e você está executando w.w -h quando ele atrapalhar. Filtre para um usuário com w lina.$ w -h lina
lina tty1 - 09:12 1:03m 0.20s 0.20s -bash
4. Como vejo o histórico de logins passados?
Conclusão:
lastmostra o histórico de logins passados, do mais recente para o mais antigo. Inclui pessoas que já fizeram logout, então você pode rastrear quem fez login, quando e de onde.
last. Ele lista registros de login e logout, do mais recente para o mais antigo.-n.$ last -n 5
linny pts/0 192.168.1.20 Fri Jun 5 10:03 still logged in lina tty1 Fri Jun 5 09:12 still logged in linny pts/0 192.168.1.20 Thu Jun 4 18:40 - 19:55 (01:15) lina pts/1 192.168.1.31 Thu Jun 4 14:02 - 17:30 (03:28) reboot system boot 6.8.0-generic Thu Jun 4 08:00 still running
still logged in e outras dizem - 19:55 (01:15).still logged in significa "ainda online agora."18:40 - 19:55 (01:15) significa "fez login às 18:40, fez logout às 19:55, com duração de 1 hora e 15 minutos." Para sessões passadas, você também vê o horário de logout e a duração.last -n 5 mostra apenas as 5 entradas mais recentes. last -5 faz a mesma coisa. O histórico se acumula, então limitar a contagem primeiro facilita muito a leitura.
5. Como verifico reinicializações ou um usuário específico?
Conclusão: Use
last rebootpara histórico de reinicialização/inicialização, elast nome_usuariopara filtrar os logins de um usuário.
reboot naquele histórico. Posso ver quando o servidor reiniciou?last reboot lista apenas os horários de inicialização. Prático para rastrear "quando caiu / voltou."$ last reboot
reboot system boot 6.8.0-generic Thu Jun 4 08:00 still running reboot system boot 6.8.0-generic Mon Jun 1 07:55 - Jun 4 07:58 (2+23:03)
last. last lina lista apenas os logins de lina.$ last lina
lina tty1 Fri Jun 5 09:12 still logged in lina pts/1 192.168.1.31 Thu Jun 4 14:02 - 17:30 (03:28) lina tty1 Wed Jun 3 09:30 - 18:10 (08:40)
Para inspecionar logins falhos, use lastb (o log btmp), não last. lastb precisa de privilégios de administrador, então execute sudo lastb. Ajuda a identificar sinais de intrusão, como muitas falhas de um IP desconhecido.
6. Mini Desafios - Pratique
Conclusão: Três tarefas - a contagem atual, o histórico recente e o histórico de reboot - para fixar a divisão entre "agora" e "passado".
Desafio 1: Conte Quem Está Logado Agora
Tarefa: Descubra quantas pessoas estão logadas neste servidor agora.
Ver dica 1 (direção)
Dois comandos mostram o "agora". Escolha o que coloca a contagem na primeira linha.
Ver dica 2 (nome do comando)
Use w. A linha de cabeçalho contém users. Contar as linhas do who também funciona.
Ver resposta
$ w
10:15:32 up 2 days, 3:41, 2 users, load average: 0.15, 0.10, 0.05
A parte 2 users é a contagem.
Desafio 2: Mostre os 3 Logins Mais Recentes
Tarefa: Exiba o histórico de logins passados, limitado aos 3 registros mais recentes.
Ver dica 1 (direção)
Use o comando que mostra o passado. Sozinho ele imprime demais, então adicione a opção que limita a contagem.
Ver dica 2 (nome do comando)
Use last. Limite com -n QUANTIDADE. Escrever last -3 faz a mesma coisa.
Ver resposta
$ last -n 3
linny pts/0 192.168.1.20 Fri Jun 5 10:03 still logged in lina tty1 Fri Jun 5 09:12 still logged in linny pts/0 192.168.1.20 Thu Jun 4 18:40 - 19:55 (01:15)
Desafio 3: Mostre o Histórico de Reboot do Servidor
Tarefa: Exiba o histórico de quando este servidor foi inicializado.
Ver dica 1 (direção)
O comando de histórico pode ser filtrado adicionando uma palavra depois dele. Use a palavra que representa a inicialização.
Ver dica 2 (nome do comando)
Use last, seguido de reboot.
Ver resposta
$ last reboot
reboot system boot 6.8.0-generic Thu Jun 4 08:00 still running
who e w, o passado é last" - acho que consigo lembrar assim.w primeiro. Contagem, carga e atividade chegam todas em uma tela.7. Armadilhas comuns e soluções
Conclusão: A maioria dos problemas vem de três coisas: confundir
whoamicomwho am i, interpretar erradostill logged innolast, e procurar logins falhos comlast.
| Sintoma | Causa | Solução |
|---|---|---|
| Aparece apenas um nome de usuário | Usando whoami |
Use who para lista, w para detalhes |
who am i retorna erro |
Espacamento errado | Três palavras com espaços: who am i |
Saída do last é longa demais para ler |
Mostrando o histórico completo | Limite com last -n 10 |
Logins falhos não aparecem no last |
Olhando o log de sucesso (wtmp) | Veja falhas com sudo lastb (btmp) |
Incerto sobre o que still logged in significa |
Confuso com o formato de duração | Significa "ainda online agora" |
O last imprime só "wtmp begins ..." |
O arquivo de histórico (/var/log/wtmp) está vazio |
Comum no WSL e em containers. Teste em um servidor real ou VM |
Na dúvida, siga esta ordem: quem está aqui agora -> who, o que estão fazendo / carga -> w, olhar o passado -> last.
Resumo em Três Linhas
wholista quem está aqui agora ewacrescenta a atividade de cada um e a carga. Comece por esses dois para ler o estado atuallasté o passado. Limite comlast -n 5e uselast rebootsó para o histórico de inicializaçãowhoami(uma palavra) ewho am i(três palavras) são comandos diferentes. Para logins falhos, usesudo lastb