Linux / Comando last: consultar logins, reinicializações e registros antigos
last consulta o histórico de login e logout, começando pelos registros mais recentes. Na implementação util-linux tratada aqui, ele lê /var/log/wtmp e mostra usuário, terminal, host remoto, horários e duração da sessão.
Antes de usar as opções, confira last --version, last --help e man last no sistema consultado. Em ambientes que adotam wtmpdb, o nome last pode apontar para uma implementação com banco SQLite e opções diferentes. Um banco wtmpdb não deve ser tratado como o arquivo binário wtmp do util-linux.
Você pode filtrar usuários e períodos e procurar registros de reinicialização ou desligamento. O arquivo atual pode não conter dados antigos após a rotação; uma cópia preservada pode ser consultada com -f. Dados nunca registrados ou excluídos sem cópia não são reconstruídos pelo comando, e o histórico isolado não comprova um incidente de segurança.
O que é o comando last?
last pesquisa os registros de login do wtmp a partir do final e exibe as entradas mais recentes primeiro. Normalmente, você pode verificar o nome do usuário conectado, o terminal usado (tty ou pts), o host ou endereço IP de origem, os horários de login e logout e a duração da sessão.
TTY é um identificador de terminal; pts identifica pseudoterminais, comuns em conexões SSH (Secure Shell). O endereço IP é um endereço de rede de origem e pode corresponder a um intermediário, sem identificar sozinho uma pessoa.
wtmp não é um log de texto, mas um arquivo em um formato de registro definido pelo sistema. Portanto, ele deve ser lido com ferramentas que entendam o formato, como last, em vez de cat ou um editor de texto. Dependendo da distribuição e das configurações do sistema, a localização do arquivo, se ele é registrado e o período de retenção podem variar.
Sintaxe básica e leitura da saída
A sintaxe básica é a seguinte. Se o nome de usuário ou terminal for omitido, ele exibe todos os registros disponíveis.
last [option] [username|terminal...]
Na sintaxe ilustrada, option, username e terminal são campos a substituir; os colchetes e a barra | não são digitados literalmente. Os nomes mina, alex, datas e endereços usados abaixo são exemplos. Consultar registros exige permissão de leitura; não modifique o arquivo para fazer o exemplo funcionar.
Para verificar os registros de login mais recentes, execute da seguinte forma.
last
mina pts/1 192.0.2.24 Fri Sep 18 21:10 - 22:42 (01:31)
alex tty1 Fri Sep 18 19:04 - 19:35 (00:31)
reboot system boot 6.12.0 Fri Sep 18 18:58 still running
A saída é ilustrativa. Os horários curtos omitem segundos, enquanto a duração é calculada a partir dos registros completos; por isso, a diferença entre os minutos mostrados pode parecer um minuto maior. Use -F para examinar os horários completos.
A primeira coluna é o usuário, a segunda coluna é o terminal, a terceira coluna é o host remoto ou informações do kernel, seguida pelo horário de login e status de logout. Logins locais no console sem um endereço remoto podem ter a coluna do host vazia.
wtmp begins, no fim da saída, marca o início dos dados do arquivo consultado. Não é a data de instalação nem comprova o primeiro login real. Em um arquivo vazio, a indicação pode vir dos metadados do arquivo, sem representar um registro de login.
Opções de last mais usadas
| Opção | Função | Exemplos de uso |
|---|---|---|
-n N, --limit N |
Exibir até N entradas | last -n 20 |
-s horário, --since horário |
Mostrar registros desde o horário especificado | last -s 2026-09-01 |
-t horário, --until horário |
Mostrar registros até o horário especificado | last -t 2026-09-19 |
-p horário, --present horário |
Exibir usuários conectados no momento especificado | last -p '2026-09-18 21:00' |
-F, --fulltimes |
Exibir data e hora completas de login e logout | Visualização detalhada sem omitir o ano |
--time-format iso |
Exibir no formato ISO 8601 com fuso horário | Útil ao comparar com registros de outros sistemas |
-i, --ip |
Exibir host remoto como IP numérico | Verificar o endereço registrado em vez do nome DNS |
-a, --hostlast |
Mover o campo do host para a última coluna | Melhorar a leitura de datas completas |
-R, --nohostname |
Ocultar o campo de host | Concentrar a consulta em sessões e horários |
-x, --system |
Mostrar também desligamentos e mudanças de runlevel (nível de execução) | Examinar o estado antes e depois do reinício |
-f arquivo, --file arquivo |
Ler outros arquivos wtmp | last -f /var/log/wtmp.1 |
As opções variam entre implementações. Os exemplos desta página seguem util-linux; confira a definição na página oficial do manual de last do util-linux.
Como filtrar os registros de login
Consultar um usuário
Ao adicionar um nome de usuário como argumento, apenas o histórico desse usuário é exibido.
last mina
Se você listar vários nomes de usuário, pode ver entradas que correspondam a qualquer um deles. Se o nome for longo, ele pode ser truncado na saída padrão, então você pode exibir o campo completo usando a opção -w ou --fullnames do util-linux.
last -w mina alex
Consultar um terminal
Ao especificar o nome de um terminal, você pode verificar apenas as sessões criadas a partir desse terminal. pts/0 é comumente visto em terminais virtuais, como o SSH, e tty1 pode representar um console virtual local.
last pts/0
De acordo com o manual, tty0 pode ser abreviado como 0, mas em documentos e scripts, usar o nome completo do terminal torna a intenção clara.
Limitar o número de registros
Para verificar rapidamente apenas registros recentes, especifique o número máximo de entradas com -n.
last -n 10
Você pode abreviar como -10, mas o formato -n 10 é mais fácil de ler em scripts e documentos e evita confusão com outras opções.
Como consultar um período ou horário
Definir o início e o fim do período
-s especifica o horário de início da consulta, e -t especifica o horário de término. Combinando as duas opções, você pode delimitar um período específico.
last -s '2026-09-01 00:00' -t '2026-09-19 00:00'
No util-linux, os filtros são aplicados aos horários dos registros. Não interprete a seleção como uma reconstrução completa de toda sessão que atravessou o período; para perguntar quem estava conectado em um instante, use -p. O limite de -t inclui um registro exatamente naquele horário; ao comparar dias, confira os registros da fronteira.
Uma data sem horário é interpretada como 00:00:00. Você pode usar o início do dia seguinte como referência para delimitar o período, considerando que o registro exatamente na fronteira também pode ser incluído.
Usar expressões de tempo relativas
O comando last do util-linux suporta expressões de tempo relativas, como today, yesterday, now e -7days.
last -s yesterday
last -s -7days
Se você precisar comparar resultados automatizados repetidamente, é melhor para reprodutibilidade usar datas e fusos horários explícitos em vez de expressões relativas, que variam dependendo do horário de execução.
Identificar sessões em um horário específico
-p mostra os usuários que estavam conectados no horário especificado. Isso pode ser útil ao verificar sessões que estavam ativas no momento de um incidente.
last -p '2026-09-18 21:30'
Os resultados são calculados com base nos registros de login/logout que permanecem no wtmp, portanto, ele não pode restaurar registros ausentes ou corrompidos.
Como mostrar datas e fusos horários
Mostrar datas completas de login e logout
A saída básica pode omitir o ano ou parte do horário para reduzir a largura da tela. -F exibe a data e hora completas para logins e logouts.
last -F -n 10
Mostrar o formato ISO com fuso horário
Ao comparar logs de outros servidores ou ao entregar resultados externamente, --time-format iso é útil. O formato ISO inclui informações de fuso horário, o que pode reduzir a confusão na interpretação dos horários.
last --time-format iso -n 10
Ao comparar a sequência de eventos em vários sistemas, você também deve verificar se o horário do sistema e as configurações de fuso horário de cada servidor estão corretos.
Registros de reinicialização e desligamento
Consultar reinicializações
reboot é um pseudo usuário registrado quando o sistema reinicia, não uma conta de usuário real. O seguinte comando mostra o histórico de reinicializações atualmente mantido no arquivo wtmp.
last reboot
A consulta alcança apenas os dados preservados no arquivo lido. Reinicializações antigas podem estar em arquivos rotacionados; sua ausência no arquivo atual não comprova que não ocorreram.
Consultar desligamentos e níveis de execução
-x exibe registros de desligamento do sistema e alterações de nível de execução junto com registros normais de login. É útil ao verificar se um desligamento normal foi registrado pouco antes de uma reinicialização.
last -x -n 30
Você também pode restringir apenas às entradas de desligamento usando last -x shutdown. No entanto, em situações onde o registro de desligamento não pôde ser deixado, como em um desligamento abrupto, pode não haver entradas normais shutdown.
A opção -x é necessária nessa consulta: no código do util-linux, os registros de desligamento só são exibidos com a listagem de sistema ativada. Runlevel é um nível de operação usado por sistemas de inicialização tradicionais; sua presença nos registros depende do ambiente.
Como interpretar os estados da saída
| Exibição | Significado comum | O que conferir |
|---|---|---|
still logged in |
Ainda não há registros de logout | Reconfirme se é a sessão atual com who ou w |
still running |
A sessão de inicialização não terminou | Verifique se é a inicialização atual com uptime |
crash |
Sessão encerrada sem logout normal antes de uma reinicialização | Investigue junto com os logs do kernel, journal e hardware |
gone - no logout |
Não foi possível encontrar um registro de logout correspondente | Verifique as possibilidades de perda de log, reinicialização ou problemas de registro de sessão |
wtmp begins |
Marco inicial dos dados do arquivo consultado | Verifique a presença de arquivos anteriores rotacionados |
Cada indicação é uma pista para investigação, sem determinar sozinha a causa. Por exemplo, ver crash não indica apenas uma falha de hardware; você também deve verificar os logs do kernel, o diário do systemd e os eventos da plataforma de virtualização.
Arquivos wtmp anteriores e rotação de logs
Ler outro arquivo de registros
-f lê um arquivo formatado como wtmp especificado, em vez do arquivo padrão. Dependendo das configurações de rotação de logs da distribuição, os registros anteriores podem permanecer em /var/log/wtmp.1 e assim por diante.
last -f /var/log/wtmp.1
No util-linux, você pode especificar -f várias vezes para processar vários arquivos. Verifique primeiro os nomes reais dos arquivos e as permissões nas configurações do seu sistema.
Cuidado ao lidar com registros comprimidos
Se os arquivos rotacionados estiverem comprimidos com gzip ou similar, não presuma que last possa lê-los descompactando automaticamente. Copie e descompacte-os em um espaço de trabalho restrito sem danificar os originais e, em seguida, leia com -f. Para fins de investigação, registre também o hash e o procedimento de preservação do original.
Como consultar tentativas de login malsucedidas
Relação entre lastb e btmp
lastb é semelhante ao last, mas por padrão ele lê /var/log/btmp para exibir tentativas de login malsucedidas. Dependendo da distribuição, podem ser necessários privilégios de administrador.
sudo lastb -n 20
Ajuda a observar endereços remotos e nomes de usuário com falhas repetidas, mas em servidores expostos à internet, varreduras automatizadas são comuns, portanto, não se deve concluir uma violação com base em tentativas isoladas.
Comparar com logins bem-sucedidos
É significativo comparar logins bem-sucedidos, registros de autenticação SSH, firewall e controle de acesso durante o mesmo período de tempo.
last --time-format iso -s '2026-09-18 00:00'
sudo lastb --time-format iso -s '2026-09-18 00:00'
A localização e o método de acesso aos logs de autenticação variam dependendo da distribuição e da configuração de registro. Em sistemas que usam o journal do systemd, verifique também o journal das unidades de serviço relacionadas.
Como organizar uma análise de acesso
Definir o período e o fuso horário
Registre os horários de início e término do incidente a ser investigado e o fuso horário do servidor. Se possível, use --time-format iso para incluir informações de fuso horário na saída, e também verifique o status de sincronização de tempo de múltiplos servidores.
Cruzar usuários, hosts e terminais
Procure por usuários inesperados, endereços remotos diferentes do usual e horários de login e durações de sessão anormais. Como o proprietário ou a localização de um endereço IP pode mudar e é afetado por proxies, redes privadas virtuais (VPNs) e tradução de endereços de rede (NAT), não identifique o usuário com base em um único endereço sozinho.
Conferir reinicializações e lacunas nos logs
Verifique last reboot, last -x e wtmp begins para determinar o intervalo dos registros e os limites de inicialização. Compare com os horários de rotação de logs para ver se há lacunas inexplicáveis.
Avaliar em conjunto com outros registros
Verifique os resultados do last com os logs de autenticação SSH, o journal do systemd, os logs de auditoria de comandos e os registros de acesso de firewall, VPN e nuvem. Se um incidente for suspeito, não altere os logs originais e preserve-os de acordo com os procedimentos de resposta da organização.
Limitações dos registros de last
- Dependência de arquivos locais: Se o
wtmpestiver ausente ou o serviço não registrar, os resultados podem estar vazios. - Limitação do período de retenção: Registros removidos do arquivo atual só podem ser consultados se houver uma cópia preservada.
- Possibilidade de adulteração: Um atacante com privilégios suficientes pode modificar ou excluir registros locais.
- Dependência de tempo: Alterar o relógio do sistema ou a configuração incorreta do fuso horário pode confundir a ordem dos eventos e os horários das sessões.
- Diferenças ambientais: Contêineres, ambientes de instalação mínima e alguns métodos de acesso remoto podem não deixar as entradas
wtmpesperadas.
Portanto, last é útil para avaliar rapidamente a situação e iniciar a investigação, mas não substitui registros completos de auditoria ou registros centralizados de segurança.
Comparação com comandos similares ao last
| Comando | Objetivo principal | Situações adequadas |
|---|---|---|
last |
Histórico de login e logout | Verificar sessão e registros de inicialização restantes em wtmp |
lastb |
Histórico de tentativas de login malsucedidas | Verificar falhas de autenticação registradas em btmp |
who |
Usuários atualmente conectados | Verificar usuários e terminais das sessões atuais |
w |
Usuários atuais e suas atividades em execução | Verificar usuários logados, tempos ociosos e processos |
lastlog ou lslogins |
Último login por conta | Verificar contas que não foram usadas por muito tempo ou o último login |
Perguntas frequentes
Por que last não retorna resultados?
Pode ser que /var/log/wtmp não exista, esteja vazio ou que o sistema esteja configurado para não registrar logins nesse arquivo. Verifique a existência do arquivo, as permissões e as políticas de registro. Um resultado vazio não significa que não houve registros de login.
still logged in comprova que a sessão continua ativa?
Não necessariamente. A indicação significa que não há um registro de logout correspondente àquele login. Para verificar a sessão atual real, é melhor usar who, w, loginctl, etc. Sessões mais antigas podem aparecer assim devido a término anormal ou registros ausentes.
Como posso verificar registros antigos de login?
Se houver arquivos como o log rotacionado wtmp.1, você pode lê-los com last -f arquivo. Para arquivos compactados, use uma cópia descompactada e não modifique o original diretamente.
É possível confirmar uma invasão apenas pela saída de last?
Não. Logins inesperados são pistas importantes, mas registros locais wtmp podem estar incompletos ou adulterados. É necessário analisá-los junto com logs de autenticação, registros de rede, logs de auditoria de comandos e alterações no sistema.
Resumo
O histórico recente de login pode ser verificado com last, usuários específicos com last usuario, registros de reinicialização com last reboot e logins falhos com lastb. Para períodos, use -s e -t, para um ponto específico no tempo -p, e para exibição clara do tempo --time-format iso pode ser usado.
Os resultados de last são válidos apenas dentro do intervalo dos registros wtmp atualmente disponíveis. Em uma investigação de segurança, você deve primeiro verificar o fuso horário e o intervalo de retenção de logs e cruzar com outros registros. Ferramentas básicas relacionadas podem ser consultadas na referência de comandos do Linux por tarefa.




