O comando last lista os usuários que acessaram ou se desconectaram do sistema. Ele mostra tanto as conexões locais quanto as remotas, ou seja, quando alguém acessou o computador pela rede.
É usado para isso o arquivo /var/log/wtmp.
Acontece que o comando last nos informa muito mais que apenas usuários que se conectaram ou desconectaram, ele mostra também quando houve o reinício/reboot do sistema ou quando ele foi desligando(crash) inesperadamente ou ainda quando o computador foi desligado(down) ou quando ele foi iniciado(boot).
Também há o comando lastb que exibe as tentativas frustadas de acesso e usa o arquivo /var/log/btmp.
Vamos ver algumas opções desse comando antes de executarmos ele.
Opções do Comando last
As opções abaixo referente a tempo podem receber valores no seguinte formato:
YYYYMMDDhhmmss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm (seconds will be set to 00) YYYY-MM-DD (time will be set to 00:00:00) hh:mm:ss (date will be set to today) hh:mm (date will be set to today, seconds to 00) now yesterday (time is set to 00:00:00) today (time is set to 00:00:00) tomorrow (time is set to 00:00:00) +5min -5days
- a ou hostlast = mostra o nome da máquina(hostname) na última coluna do resultado que aparece na tela.
- -d ou dns = serve para acessos que foram feitos remotamente. Essa opção mostra o nome, ao invés do endereço ip, do computador que acessou remotamente.
- -F ou fulltimes = Exibe data e horário em formato mais extenso, com mais detalhes.
- -i pi ip = Exibe o endereço ip ao invés do nome do computador que fez o acesso.
- -p ou present = exibe os usuários que estavam logados em uma data específica que fornecermos. Exemplo, “last today” exibe usuários que logaram hoje e “last yesterday” usuários que acessaram ontem. dica “last tomorrow” mostrará os usuários que acessarão amanhã kkkk.
- -R ou nohostname = não exibe nome da máquina(hostname)
- -s ou since = since(ou desde).
- -t ou until = exibe logins feitos até(untill) a uma data especificada.
- time-format: essa opção recebe um dos valores: notime, short, full ou iso. short exibe tempo em formato curso, resumido. Full exibe data e hora com detalhes. o valor iso exibe em formato ISO-8601. O valor iso possui informação de fuso horário(timezone), fazendo ele útil para investigação de acessos ocorridos fora do sistema, remoto.
- -w ou fullnames: exibe nome de usuários e domínios.
- -x ou system: exibe quando ocorreu desligamento(shutdown) do sistema.
Usando o Comando last
somente o comando last exibe informações suficientes para estudarmos quem acessou nosso sistema. Colori de laranja quando ocorreu desligamento abrupto(crash) e quando houve desligamento correto(down)
elder@server02:~$ last elder pts/0 192.168.0.169 Fri Jul 30 10:18 still logged in elder tty1 Fri Jul 30 10:17 still logged in reboot system boot 4.19.0-13-amd64 Fri Jul 30 10:16 still running elder pts/0 192.168.0.169 Fri Jul 30 10:15 - crash (00:00) elder tty1 Fri Jul 30 10:14 - crash (00:02) reboot system boot 4.19.0-13-amd64 Fri Jul 30 10:14 still running root tty1 Fri Jul 30 10:13 - down (00:00) elder tty1 Fri Jul 30 10:12 - 10:13 (00:00) elder pts/1 192.168.0.169 Thu Dec 17 17:29 - 10:13 (224+16:43) elder pts/0 192.168.0.169 Thu Dec 17 16:04 - 19:25 (224+03:20) root tty1 Thu Dec 17 15:58 - 10:12 (224+18:14) reboot system boot 4.19.0-13-amd64 Thu Dec 17 15:57 - 10:14 (224+18:16) root tty1 Thu Dec 17 14:22 - down (01:34) reboot system boot 4.19.0-13-amd64 Thu Dec 17 14:22 - 15:57 (01:34) wtmp inicia Thu Dec 17 14:22:38 2020
Exibindo informações detalhadas
elder@server02:~$ last -F elder pts/0 192.168.0.169 Fri Jul 30 10:18:47 2021 still logged in elder tty1 Fri Jul 30 10:17:31 2021 still logged in reboot system boot 4.19.0-13-amd64 Fri Jul 30 10:16:37 2021 still running elder pts/0 192.168.0.169 Fri Jul 30 10:15:40 2021 - crash (00:00) elder tty1 Fri Jul 30 10:14:34 2021 - crash (00:02) reboot system boot 4.19.0-13-amd64 Fri Jul 30 10:14:23 2021 still running root tty1 Fri Jul 30 10:13:39 2021 - down (00:00) elder tty1 Fri Jul 30 10:12:53 2021 - Fri Jul 30 10:13:00 2021 (00:00) elder pts/1 192.168.0.169 Thu Dec 17 17:29:57 2020 - Fri Jul 30 10:13:32 2021 (224+16:43) elder pts/0 192.168.0.169 Thu Dec 17 16:04:43 2020 - Thu Jul 29 19:25:35 2021 (224+03:20) root tty1 Thu Dec 17 15:58:19 2020 - Fri Jul 30 10:12:44 2021 (224+18:14) reboot system boot 4.19.0-13-amd64 Thu Dec 17 15:57:27 2020 - Fri Jul 30 10:14:21 2021 (224+18:16) root tty1 Thu Dec 17 14:22:56 2020 - down (01:34) reboot system boot 4.19.0-13-amd64 Thu Dec 17 14:22:38 2020 - Thu Dec 17 15:57:15 2020 (01:34) wtmp inicia Thu Dec 17 14:22:38 2020
Exibindo conexões feitas em menos de 2 dias
elder@server02:~$ last -2 elder pts/0 192.168.0.169 Sat Jul 31 12:25 still logged in elder pts/0 192.168.0.169 Fri Jul 30 10:18 - 12:25 (1+02:06) wtmp inicia Thu Dec 17 14:22:38 2020
logins realizados entre 30-07-2021 até 31-07-2021
elder@server02:~$ sudo last --since 2021-07-30 --until 2021-07-31 elder pts/0 192.168.0.169 Fri Jul 30 10:18 still logged in elder tty1 Fri Jul 30 10:17 still logged in reboot system boot 4.19.0-13-amd64 Fri Jul 30 10:16 still running elder pts/0 192.168.0.169 Fri Jul 30 10:15 - crash (00:00) elder tty1 Fri Jul 30 10:14 - crash (00:02) reboot system boot 4.19.0-13-amd64 Fri Jul 30 10:14 still running root tty1 Fri Jul 30 10:13 - down (00:00) elder tty1 Fri Jul 30 10:12 - 10:13 (00:00) wtmp inicia Thu Dec 17 14:22:38 2020
Usando lastb
Vamos ver tentativas de login que falharam
elder@server02:~$ sudo lastb elder pts/0 Sat Jul 31 12:33 - 12:33 (00:00) root pts/0 Sat Jul 31 12:32 - 12:32 (00:00)
O mesmo comando acima, porém com mais detalhes
elder@server02:~$ sudo lastb -F elder pts/0 Sat Jul 31 12:33:07 2021 - Sat Jul 31 12:33:07 2021 (00:00) root pts/0 Sat Jul 31 12:32:51 2021 - Sat Jul 31 12:32:51 2021 (00:00)
As tentativas que falharam acima fora locais, isto é, tentaram logar sem ser pela rede, presencialmente.
Abaixo podemos ver uma tentativa falha, às 12:34, realizada remotamente do computador com ip 192.168.0.38
elder ssh:notty 192.168.0.38 Sat Jul 31 12:34 - 12:34 (00:00) elder pts/0 Sat Jul 31 12:33 - 12:33 (00:00) root pts/0 Sat Jul 31 12:32 - 12:32 (00:00)
Conclusão
A ferramenta last é muito útil. Com ela podemos ver tentativas de com falhas e, o pior, se houve tentativas não autorizadas que obtiveram êxito.