Befehl „Last“: Wie wird die letzte Benutzeranmeldung angezeigt?

19

Wie ich weiß, lastzeigt der Befehl die letzten Anmeldungen aller Benutzer an. Mein PC (CentOS) wird jedoch seit ungefähr einem Jahr verwendet, und es sind viele Benutzer angemeldet. Ich habe versucht, den lastBefehl zu verwenden , aber er wurde nur von Juni 2013 bis September 2013 angezeigt.

Meine Frage lautet: Wie kann ich die neuesten Benutzer anzeigen, die sich kürzlich angemeldet haben (z. B. Dezember 2013 bis Januar 2014)?

Thomas
quelle
Können Sie überprüfen , ob die /var/log/wtmpDatei vorhanden ist und seine letzte Änderung Zeit ist stat.
mkc
Beachten Sie außerdem, dass sich die neuesten Einträge in der Ausgabe des letzten Befehls oben befinden.
MKC
trotzdem, um es auf den Grund zu schaffen?
Thomas
1
Trylast | tac
mkc
1
mach einfach einen stat:stat /var/log/wtmp
mkc

Antworten:

15

lastLiest in der Regel aus einer Protokolldatei /var/log/wtmpund druckt die Einträge erfolgreicher Anmeldeversuche der Benutzer in der Vergangenheit. Die Ausgabe ist so, dass der zuletzt angemeldete Benutzereintrag oben angezeigt wird. In deinem Fall ist es vielleicht deswegen aus dem Ruder gelaufen.

Um zu überprüfen, wann die Datei /var/log/wtmpzuletzt geschrieben wurde, können Sie den folgenden statBefehl verwenden:

stat /var/log/wtmp

Um die Ausgabe in umgekehrter Reihenfolge zu drucken, können Sie die Ausgabe von last nach GNU tac(Gegenteil von cat) wie folgt umleiten:

last | tac
mkc
quelle
16

Sie können den Befehl lastlogcommand auch unter Linux verwenden. Sie können die Datumsbereiche genauer steuern, wenn Sie die Protokolle der Benutzeranmeldungen durchsehen.

Auszug aus der Lastlog-Manpage

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

Beispiel

Um herauszufinden, welche Benutzer sich in den letzten 100 Tagen bei einem System angemeldet haben.

$ 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

Dies zeigt, dass sich diese Benutzer das letzte Mal an diesem System angemeldet haben. Der Zeitbereich zeigt die letzten 100 Tage. Vor heute ( -b 0) und nach 100 Tagen ( -t 100).

Sie können auch alle Benutzer anzeigen, indem Sie einen Bereich weglassen und alle Benutzer anzeigen, die jemals angemeldet waren, sowie den Zeitpunkt, zu dem sie sich das letzte Mal angemeldet haben.

slm
quelle
0

Sie können dieses Skript ausprobieren:

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
Stephen Kitt
quelle
1
Willkommen bei Unix.SE. Können Sie erläutern, welche Vorteile dieser Ansatz gegenüber den vorhandenen Antworten hat?
Stephen Kitt
Dieses Skript gibt den letzten Protokollzeitstempel für alle Benutzer unter UNIX (AIX) an
Danke für die Information; Bitte bearbeiten Sie Ihre Antwort, um dies zu erwähnen. Beachten Sie auch, dass es sich bei der Frage um CentOS und nicht um AIX handelt.
Stephen Kitt