Linux: comment obtenir tous les journaux de connexion de mon système [fermé]

12

Je veux connaître toutes les fois qu'un utilisateur se connecte depuis l'année dernière à mon système?
J'ai utilisé la lastcommande mais ce n'est pas utile.

gabo34
la source
1
Bienvenue sur Stack Exchange! n'oubliez pas que nous sommes tous bénévoles ici. en tant que tel, nous nous attendons à ce que vous ayez fait des recherches fondamentales. il semble que vous ayez un début - puisque vous mentionnez essayer la lastcommande - mais vous devriez faire plus de recherches que cela, et dans tous les cas, vous n'avez pas réellement spécifié pourquoi la lastcommande n'est pas utile. définissez également "connecté". voulez-vous suivre les connexions de la console? Connexions SSH? Emacs interdis, telnetconnexions? ou tout simplement authentifier avec PAM? soyez précis .
Strugee

Réponses:

10

Les journaux de connexion sur linux de style redhat sont appelés wtmp( man wtmp), stockés dans /var/log/par défaut, et vous pouvez les récupérer à l'aide de utmpdump(sur 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]
...
Thomas
la source
1

Il lastpeut être utilisé pour réaliser ce que vous essayez de faire. Vous devez ajouter la date à la dernière commande pour extraire les informations.

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

Toutefois, si vous souhaitez rechercher des informations sur un utilisateur particulier, vous pouvez modifier la dernière commande as last usernamepuis lui rediriger la whileboucle. Il vous donnerait les informations de connexion d'un utilisateur particulier pour la dernière année.

J'ai testé la commande ci-dessus et elle fonctionne parfaitement bien dans mon système. J'ai pris la commande ci-dessus à partir d' ici .

Vous pouvez modifier la date dans la commande en fonction de vos besoins.

Ramesh
la source