Commande «Last»: comment afficher la dernière connexion utilisateur?


19

Comme je le sais, la lastcommande affiche les connexions récentes de tous les utilisateurs. Mais mon PC (CentOS) est utilisé depuis environ un an et de nombreux utilisateurs sont connectés. J'ai essayé d'utiliser la lastcommande, mais elle ne s'est montrée que de juin 2013 à septembre 2013.

Ma question est: comment puis-je montrer les derniers utilisateurs qui se sont connectés récemment, disons (décembre 2013 à janvier 2014)?


Pourriez-vous vérifier si le /var/log/wtmpfichier est présent et sa dernière modification à l'aide stat.
mkc

Notez également que les dernières entrées dans la sortie de la dernière commande seraient en haut.
mkc

de toute façon pour descendre au fond?
Thomas

1
Essayezlast | tac
mkc

1
faites juste une statistique:stat /var/log/wtmp
mkc

Réponses:


15

lastlit à partir d'un fichier journal, généralement /var/log/wtmpet imprime les entrées des tentatives de connexion réussies effectuées par les utilisateurs dans le passé. La sortie est telle que la dernière entrée des utilisateurs connectés apparaît en haut. Dans votre cas, il est peut-être passé inaperçu à cause de cela.

Afin de vérifier quand le fichier a /var/log/wtmpété écrit en dernier, vous pouvez utiliser la statcommande:

stat /var/log/wtmp

Pour imprimer la sortie en sens inverse, vous pouvez diriger la sortie de last vers GNU tac(opposé à cat) comme suit:

last | tac

16

Vous pouvez également utiliser la commande lastlogcommand sur Linux. Il vous donne des contrôles plus précis quant aux plages de dates lorsque vous parcourez les journaux des connexions utilisateur.

extrait de la page de manuel lastlog

   lastlog - reports the most recent login of all users or of a given user

Exemple

Pour connaître les utilisateurs qui se sont connectés à un système au cours des 100 derniers jours.

$ lastlog -b 0 -t 100
Username         Port     From             Latest
sam              pts/0    pegasus          Wed Jan  8 20:32:25 -0500 2014
joe              pts/0    192.168.1.105    Thu Dec 12 12:47:11 -0500 2013

Cela montre que la dernière fois que ces utilisateurs se sont connectés à ce système. La plage de temps affiche les 100 derniers jours. Avant aujourd'hui ( -b 0) et après il y a 100 jours ( -t 100).

Vous pouvez également afficher tous les utilisateurs en omettant n'importe quelle plage et en voyant simplement tous les utilisateurs qui se sont connectés, et la dernière fois qu'ils se sont connectés.


0

Vous pouvez essayer ce script:

for user in $( awk -F: '{ print $1}' /etc/passwd)
do
lastlog=$(sudo lsuser -a time_last_login $user | awk -F'=' '{print $NF}')
echo "$user         \c"; perl -le "print scalar localtime($lastlog);"
done

1
Bienvenue sur Unix.SE. Pourriez-vous expliquer les avantages de cette approche par rapport aux réponses existantes, le cas échéant?
Stephen Kitt

ce script donnera l'horodatage du dernier journal pour tous les utilisateurs sous UNIX (AIX)

Merci pour l'info; veuillez modifier votre réponse pour le mentionner. Notez également que la question concerne CentOS, pas AIX.
Stephen Kitt
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.