Como extraio o histórico de login?


94

Preciso conhecer o histórico de login de um usuário específico (por exemplo, horário de logon e logout). Como extrair esse histórico para um período específico no Linux?

Respostas:


133

Você pode tentar o lastcomando:

last john 

Imprime o histórico de login / saída do usuário john. Considerando que correr apenas

last

imprime o histórico de login / logout de todos os usuários.


5
Isso retorna apenas valores para o mês atual na maioria das distribuições Linux.
precisa saber é

42

Se você precisar voltar no histórico mais de um mês, poderá ler o /var/log/wtmp.1arquivo com o lastcomando

last -f wtmp.1 johnmostrará o histórico de logins do mês anterior para o usuário john.

A última saída do log não é muito pesada e é relativamente fácil de analisar, portanto, provavelmente canalizaria a saída para grep para procurar um padrão de data específico.

last john | grep -E 'Aug (2[0-9]|30) 'para mostrar de 20 a 30 de agosto. Ou algo como:

last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) 'adquirir de 10 a 30 de julho para o usuário john.


21

Como extrair o histórico de login para um período específico no Linux?

Um exemplo para listar todos os usuários que efetuam login de 25 a 28 / agosto:

last | while read line
do
    date=`date -d "$(echo $line | awk '{ print $5" "$6" "$7 }')" +%s`
    [[ $date -ge `date -d "Aug 25 00:00" +%s` && $date -le `date -d "Aug 28 00:00" +%s` ]] && echo $line
done
  • awk '{ print $5" "$6" "$7 }'extrair a data e hora na coluna correspondente da lastsaída
  • +%s converter data e hora em época da época
  • -ge representam maior ou igual
  • -le representa menos ou igual

Você também pode fazer isso para um usuário específico com last <username>.


1
Essa é uma expressão poderosa e feia. O grep não seria mais limpo, pois a lastsaída é bastante legível?
precisa saber é o seguinte

3
Você pode grepde "15 de agosto às 09:00" e "25 de agosto às 21:00"?
quanta

1
O OP não pediu intervalos de tempo.
precisa saber é o seguinte

1
@whwhite a expressão está linda para mim, se você não gostar da aparência da sintaxe do bash, talvez esse não seja o site para você.
ekerner

1
@ekerner Você está certo. Eu irei para outro lugar;)
ewwhite
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.