Como usar o último comando no Linux

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 log wtmp é 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 último comando.

O ultimo comando

O último comando lê os dados do log wtmp e os exibe em uma janela de terminal.

Se você digitar por último e pressionar Enter, exibir todos os registros do arquivo de log.

last

Cada registro do 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 de: 0 significa que eles estavam logados no próprio computador Linux.
O endereço IP da máquina em que eles se conectaram.
A data e a hora do login.
A duração da sessão.

  Como instalar e usar o gerenciador de tarefas Nozbe no Linux

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 último comando sozinho produz um dump de todo o log, com a maior parte dele passando rapidamente pela janela do terminal. A parte que permanece visível são os primeiros dados do registro. Provavelmente não é o que você queria ver.

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

last -5

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

Mostrando nomes de rede para usuários remotos

A opção -d (Sistema de Nome de Domínio) diz por último para tentar resolver os endereços IP dos usuários remotos em uma máquina ou nome de rede.

last -d

Nem sempre é possível para o último converter o endereço IP em um nome de rede, mas o comando o fará quando puder.

Ocultando endereços IP e nomes de rede

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

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

Selecionando Registros por Data

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

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

last -R -s 2019-05-26

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.

  Como fazer backup das configurações de discórdia no Linux

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.

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

Formatos de hora e data

Você pode usar horas e datas com as opções -s e -t.

Os diferentes formatos de hora que podem ser usados ​​com as últimas 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

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:

last -R -s 20190526110000 -t 20190527130000

Pesquisando por unidades relativas

Você também especifica períodos de tempo que são 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

Ontem, hoje e agora

Você pode usar ontem e amanhã como abreviações para a data de ontem e a data de hoje.

last -R -s yesterday -t today

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.

  Como instalar o Pgadmin no Linux

A opção agora é uma abreviatura 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:

last -R -s today -t now

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

A presente opção

A opção -p (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 uma data da última, presumirá que você quer dizer “hoje”.

last -R -p 09:30

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

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

last -R -p now

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

O comando lastb

O comando lastb 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.

lastb lista as tentativas de login ruins (falhadas). Aceita as mesmas opções do último. Como foram tentativas de login malsucedidas, todas as entradas terão uma duração de 00:00.

Você deve usar sudo com lastb.

sudo lastb -R

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.