Linux: como obter todos os logs de login do meu sistema [closed]

7

Eu quero saber todas as vezes que um usuário registra desde o ano passado em meu sistema?
Eu usei o comando last , mas isso não é útil.

    
por user215983 11.04.2014 / 02:37

2 respostas

7

Os logs de login no linux estilo redhat são chamados wtmp ( man wtmp ), armazenados em /var/log/ por padrão, e você pode recuperá-los usando utmpdump (no RHEL6).

[root@server ~]# utmpdump /var/log/wtmp* | awk '$4~"root" {print}'
Utmp dump of /var/log/wtmp
[7] [01320] [ts/0] [root    ] [pts/0       ] [192.168.1.101       ] [192.168.1.101  ] [Tue Sep 24 00:31:47 2013 UTC]
[7] [01817] [ts/3] [root    ] [pts/3       ] [192.168.1.101       ] [192.168.1.101  ] [Tue Sep 24 00:38:22 2013 UTC]
[7] [01690] [ts/0] [root    ] [pts/0       ] [192.168.1.101       ] [192.168.1.101  ] [Tue Sep 24 00:59:04 2013 UTC]
[7] [23641] [ts/0] [root    ] [pts/0       ] [192.168.1.101       ] [192.168.1.101  ] [Wed Sep 25 19:12:44 2013 UTC]
[7] [03020] [ts/0] [root    ] [pts/0       ] [192.168.1.100       ] [192.168.1.100  ] [Fri Sep 27 21:33:40 2013 UTC]
...
    
por 11.04.2014 / 04:07
1

Parece que last pode ser usado para alcançar o que você está tentando fazer. Você precisa anexar a data ao último comando para extrair as informações.

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

No entanto, se você estiver preocupado em encontrar informações sobre um determinado usuário, poderá modificar o último comando como last username e, em seguida, enviar o loop while para ele. Ele forneceria as informações de login de um usuário específico durante o último ano.

Eu testei o comando acima e ele funciona perfeitamente no meu sistema. Eu peguei o comando acima em aqui .

Você pode alterar a data no comando para atender às suas necessidades.

    
por 11.04.2014 / 03:00