Como usar o último comando no Linux

Laptop Linux mostrando um prompt bash
Fatmawati Achmad Zaenuri / Shutterstock.com

Quem, quando e de onde? As boas práticas de segurança indicam que você deve saber quem está acessando seu computador Linux. Nós mostramos como.

O arquivo wtmp

Linux e outros sistemas operacionais semelhantes ao Unix  , como MacOS, são muito bons em registro. Em algum lugar nas entranhas do sistema, há um registro para quase tudo que você possa imaginar. O arquivo de log no qual estamos interessados ​​é chamado wtmp. O “w” pode significar “quando” ou “quem” – ninguém parece concordar. A parte “tmp” provavelmente significa “temporário”, mas também pode significar “carimbo de data / hora”.

O que sabemos é que wtmpé um log que captura e registra todos os eventos de login e logout. A revisão dos dados no wtmplog é uma etapa básica para adotar uma abordagem voltada para a segurança nas funções de administrador do sistema. Para um computador familiar típico, pode não ser tão crítico do ponto de vista da segurança, mas é interessante poder revisar o uso combinado do computador.

Ao contrário de muitos arquivos de log baseados em texto no Linux, wtmpé um arquivo binário. Para acessar os dados dentro dele, precisamos usar uma ferramenta projetada para essa tarefa.

Essa ferramenta é o lastcomando.

O último comando

O lastcomando lê os dados do wtmplog e os exibe em uma janela de terminal.

Se você digitar laste pressionar Enter, todos os registros do arquivo de log serão exibidos .

último

último comando em uma janela de terminal

Cada registro de wtmpé exibido na janela do terminal.

Da esquerda para a direita, cada linha contém:

  • O nome de usuário da pessoa que fez login.
  • O terminal em que eles estavam conectados. Uma entrada de terminal :0significa que eles estavam logados no próprio computador Linux.
  • O endereço IP da máquina em que eles estavam conectados.
  • A data e hora do login .
  • A duração da sessão.
Recomendado:  O Pixel 2 não é realmente exclusivo da Verizon: você pode usá-lo na AT&T, T-Mobile e Sprint

saída da última em uma janela de terminal

A última linha nos informa a data e hora da primeira sessão registrada no log.

Uma entrada de login para o usuário fictício ‘reboot’ é inserida no log toda vez que o computador é inicializado. O campo do terminal é substituído pela versão do kernel. A duração da sessão conectada para essas entradas representa o tempo de atividade do computador.

Mostrando um número específico de linhas

Usar o lastcomando sozinho produz um despejo de todo o log, com a maior parte dele passando rapidamente pela janela do terminal. A parte que permanece visível são os dados mais antigos do registro. Provavelmente não é o que você queria ver.

Você pode dizer lastpara fornecer um número específico de linhas de saída. Faça isso fornecendo o número de linhas que você gostaria na linha de comando. Observe o hífen. Para ver cinco linhas, você precisa digitar -5 e não 5:

último -5

último -5 em uma janela de terminal

Isso fornece as primeiras cinco linhas do registro, que são os dados mais recentes.

primeiras cinco linhas de twmp em uma janela de terminal

Mostrando nomes de rede para usuários remotos

A opção -d (Sistema de Nome de Domínio) informa lastpara tentar resolver os endereços IP dos usuários remotos em um nome de máquina ou rede.

último -d

último -d em uma janela de terminal

Nem sempre é possível lastconverter o endereço IP em um nome de rede, mas o comando fará isso quando puder.

saída do último -d em uma janela de terminal

Escondendo endereços IP e nomes de rede

Se você não estiver interessado no endereço IP ou nome de rede, use a opção -R(sem nome de host) para suprimir este campo.

último -R em uma janela de terminal

Como isso oferece uma saída mais limpa sem contornos feios, essa opção foi usada em todos os exemplos a seguir. Se você estivesse usando lastpara tentar identificar atividades incomuns ou suspeitas, não suprimiria esse campo.

saída do último -R em uma janela de terminal

Selecionando Registros por Data

Você pode usar a -sopção (desde) para restringir a saída para mostrar apenas eventos de login que ocorreram desde uma data específica.

Recomendado:  Como usar o comando de corte do Linux

Se você quisesse apenas ver os eventos de login ocorridos a partir de 26 de maio de 2019, usaria o seguinte comando:

último -R -s 26/05/2019

último -R -s 26/05/2019 em uma janela de terminal

A saída mostra registros com eventos de login que ocorreram a partir da hora 00:00 do dia especificado, até os registros mais recentes no arquivo de log.

Saída do último -R -s 26/05/2019 em uma janela de terminal

Pesquisando até uma data de término

Você pode usar -t(até) para especificar uma data de término. Isso permite que você selecione um conjunto de registros de login ocorridos entre duas datas de interesse.

last -R -s 2019-05-26 -t 2019-05-27 em uma janela de terminal

Este comando pede lastpara recuperar e exibir os registros de login de 00:00 (madrugada) do dia 26 até a hora 00:00 (madrugada) do dia 27. Isso restringe a lista para sessões de login que ocorreram apenas no dia 26.

Saída do último -R -s 2019-05-26 -t 2019-05-27 em uma janela de terminal

Formatos de hora e data

Você pode usar horários e datas com as opções -se -t.

Os diferentes formatos de hora que podem ser usados ​​com as last opções que usam datas e horas são (supostamente):

  • AAAAMMDDhhmmss
  • AAAA-MM-DD hh: mm: ss
  • AAAA-MM-DD hh: mm – os segundos são definidos como 00
  • AAAA-MM-DD – a hora está definida para 00:00:00
  • hh: mm: ss – a data é definida para hoje
  • hh: mm – a data será definida para hoje, segundos para 00
  • agora
  • ontem – a hora está definida para 00:00:00
  • hoje – a hora está definida para 00:00:00
  • amanhã – a hora está definida para 00:00:00
  • + 5min
  • -5 dias

Por que ‘supostamente’?

O segundo e o terceiro formatos da lista não funcionaram durante a pesquisa para este artigo. Esses comandos foram testados nas distribuições Ubuntu, Fedora e Manjaro. Estes são derivados das distribuições Debian, RedHat e Arch, respectivamente. Isso cobre todas as principais famílias de distribuição Linux.

last -R -s 2019-05-26 11:00 -t 2019-05-27 13:00

Saída de um último comando com falha em uma janela de terminal

Como você pode ver, o comando não retornou nenhum registro.

Usar o primeiro formato de data e hora da lista com a mesma data e hora do comando anterior retorna os registros:

último -R -s 20190526110000 -t 20190527130000

último -R -s 20190526110000 -t 20190527130000 em uma janela de terminal

Pesquisando por unidades relativas

Você também especifica períodos de tempo medidos em minutos ou dias, em relação à data e hora atuais. Aqui, estamos solicitando registros de dois dias atrás até um dia atrás.

last -R -s -2days -t -1days

last -R -s -2days -t -1days em uma janela de terminal

Ontem, hoje e agora

Você pode usar yesterdaye tomorrowcomo abreviatura para a data de ontem e a data de hoje.

último -R -s ontem -t hoje

último -R -s ontem -t hoje em uma janela de terminal

Não que isso não inclua nenhum registro de hoje. Esse é o comportamento esperado. O comando pede registros da data de início até a data de término. Não inclui registros da data de término.

Recomendado:  Como impedir que equipes Microsoft iniciem automaticamente no Windows 10

Saída do último -R -s ontem -t hoje em uma janela de terminal

A nowopção é uma forma abreviada de “hoje na hora atual”. Para ver os eventos de login que ocorreram desde 00:00 (madrugada) até o momento em que você emite o comando, use este comando:

último -R -s hoje-agora

last -R -s today - t agora em uma janela de terminal

Isso mostrará todos os eventos de login até o momento, incluindo aqueles que ainda estão conectados.

saída do último -R -s hoje -t agora

A presente opção

A -popção (presente) permite que você descubra quem estava conectado em um determinado momento.

Não importa quando eles se conectaram ou desconectaram, mas se eles estavam conectados ao computador no momento que você especificar, eles serão incluídos na lista.

Se você especificar um horário sem data, lastpressupõe que você quer dizer “hoje”.

último -R -p 09:30

último -R -p 09:30 em uma janela de terminal

Pessoas que ainda estão logadas (obviamente) não têm um tempo de logout; eles são descritos como still logged in. Se o computador não tiver sido reinicializado desde o momento em que você especificou, ele será listado como still running.

Saída do último -R -p 09:30

Se você usar a nowabreviação com a -popção (presente), poderá descobrir quem está conectado no momento em que emitir o comando.

último -R -p agora

último -R -p agora em uma janela de terminal

Esta é uma maneira um tanto prolixa de conseguir o que pode ser feito usando o whocomando .

Saída do último -R -p agora em uma janela de terminal

O comando lastb

O lastbcomando merece menção. Ele lê os dados de um log chamado btmp. Há um pouco mais de consenso sobre esse nome de log. O ‘b’ significa ruim, mas a parte ‘tmp’ ainda está sujeita a debate.

lastblista as tentativas de login ruins (com falha ). Aceita as mesmas opções que last. Como foram tentativas de login malsucedidas, todas as entradas terão uma duração de 00:00.

Você deve usar sudocom lastb.

sudo lastb -R

lastb - R em uma janela de terminal

A última palavra sobre o assunto

Saber quem está conectado ao seu computador Linux, quando e de onde é uma informação útil. Combinar isso com os detalhes de tentativas de login malsucedidas fornece as primeiras etapas na investigação de comportamentos suspeitos.