who, w e last: Inspecionando Logins e Sessões

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?

Lina: Senpai, eu estava trabalhando em um servidor compartilhado e ele ficou lento de repente. Será que alguém mais está logado? Posso verificar isso?
Veterano Linny: Pode sim. Use 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.
Lina: Três comandos, então.
Veterano Linny: Isso. Aprenda os três como um conjunto e eles se complementam bem.

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) vs last (passado)

1. Qual a diferença entre who, w e last?

Conclusão: who e w mostram quem está logado agora, enquanto last mostra o histórico de logins passados. w é mais detalhado que who e revela o que cada usuário está fazendo.

Lina: Três comandos parece muito para decorar.
Veterano Linny: Separe-os em "agora" vs "passado" e fica fácil. who e w mostram o estado de login ao vivo, e last mostra o histórico.
Veterano Linny: Além disso, 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 who para listar o nome, terminalUm programa interativo que interpreta os comandos digitados e os executa. e horário de login de cada usuário logado.

Lina: Vamos começar com "quem está aqui agora."
Veterano Linny: Certo, basta digitar 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)
Lina: Duas pessoas. O que são tty1 e pts/0?
Veterano Linny: São os terminais em que fizeram login. Um terminal - também chamado de console - é simplesmente a janela por onde passam a entrada e a saída.
Veterano Linny: 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)
Lina: E se eu só quiser confirmar "esta sessão sou eu"?
Veterano Linny: Digite 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

Lina: Senpai, digitei whoami e só apareceu um nome. Sem terminal, sem horário.
Veterano Linny: Isso é porque você executou outro comando. whoami - sem espaços, uma palavra - imprime apenas seu nome de usuário.
Lina: Espera, ele não é da família do who?
Veterano Linny: Eles se parecem, mas são comandos separados. who am i - com espaços, três palavras - tira apenas a sua linha da saída do who.
Lina: Então um espaço transforma tudo em outro comando...! Vou conferir antes de digitar.

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: w adiciona ao que who mostra -- para cada usuário ele exibe o comando que está executando agora, mais a média de carga do servidor, tudo em uma tela.

Lina: Quero saber o que está deixando lento. Posso ver o que cada pessoa está realmente fazendo?
Veterano Linny: É exatamente para isso que o 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
Lina: Essa linha do topo está cheia de informações...
Veterano Linny: Da esquerda para a direita: o horário atual, o tempo de atividade (up), quantos usuários estão logados e a média de carga.
Veterano Linny: Uma média de carga mais alta significa mais ocupado. Os três números são médias dos últimos 1, 5 e 15 minutos.

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 onde
  • LOGIN@: horário do login
  • IDLE: 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
Lina: Então WHAT me diz que eu estou apenas no -bash (um shell), e você está executando w.
Veterano Linny: Exatamente. Você pode adivinhar quem está colocando carga na máquina e com qual tarefa.
Veterano Linny: Remova o cabeçalho com 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: last mostra 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.

Lina: E quanto a olhar o passado -- como "quem fez login ontem à noite" em vez de "agora"?
Veterano Linny: Esse é o last. Ele lista registros de login e logout, do mais recente para o mais antigo.
Veterano Linny: Podem ser muitos registros. Comece limitando a contagem com -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
Lina: Algumas linhas dizem still logged in e outras dizem - 19:55 (01:15).
Veterano Linny: Boa observação. still logged in significa "ainda online agora."
Veterano Linny: 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 reboot para histórico de reinicialização/inicialização, e last nome_usuario para filtrar os logins de um usuário.

Lina: Havia uma linha reboot naquele histórico. Posso ver quando o servidor reiniciou?
Veterano Linny: Sim. 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)
Lina: E se eu quiser apenas o histórico de uma pessoa, tipo o meu?
Veterano Linny: Adicione o nome de usuário após 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".

Veterano Linny: Só ler não fixa. Tente estes três.

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
Lina: Consegui! "Quem está aqui agora é who e w, o passado é last" - acho que consigo lembrar assim.
Veterano Linny: Essa divisão é o essencial. Na dúvida, execute 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 whoami com who am i, interpretar errado still logged in no last, e procurar logins falhos com last.

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

  • who lista quem está aqui agora e w acrescenta a atividade de cada um e a carga. Comece por esses dois para ler o estado atual
  • last é o passado. Limite com last -n 5 e use last reboot só para o histórico de inicialização
  • whoami (uma palavra) e who am i (três palavras) são comandos diferentes. Para logins falhos, use sudo lastb

Próximas Leituras