So verwenden Sie den letzten Befehl unter Linux

Wer hatte wann und von wo Zugriff? Gute Sicherheitsmaßnahmen erfordern, dass Sie wissen, wer sich bei Ihrem Linux-System angemeldet hat. Wir zeigen Ihnen, wie Sie dies herausfinden.

Die wtmp-Datei

Linux und ähnliche Unix-basierte Betriebssysteme, wie macOS, protokollieren sehr detailliert. Fast alles, was auf einem System passiert, wird irgendwo aufgezeichnet. Die Protokolldatei, die uns interessiert, heißt wtmp. Das „w“ könnte für „wann“ oder „wer“ stehen, hier gibt es keine allgemeine Übereinstimmung. Der „tmp“-Teil steht wahrscheinlich für „temporär“, könnte aber auch für „Zeitstempel“ stehen.

Wir wissen, dass wtmp ein Protokoll ist, das jedes An- und Abmeldeereignis erfasst. Das Überprüfen dieser Daten ist ein wesentlicher Schritt, um als Systemadministrator Sicherheitsbewusstsein zu zeigen. Für einen typischen Heimcomputer ist dies vielleicht nicht kritisch, aber es kann interessant sein, das eigene Nutzungsverhalten nachzuvollziehen.

Anders als viele textbasierte Protokolldateien in Linux, ist wtmp eine Binärdatei. Um auf die darin enthaltenen Daten zuzugreifen, benötigen wir ein spezielles Tool.

Dieses Tool ist der Befehl `last`.

Der Befehl `last`

Der Befehl `last` liest Daten aus dem wtmp-Protokoll und gibt sie im Terminal aus.

Wenn Sie `last` eingeben und die Eingabetaste drücken, werden alle Einträge aus der Protokolldatei angezeigt.

last

Jeder Eintrag aus wtmp wird im Terminalfenster dargestellt.

Von links nach rechts enthält jede Zeile:

Den Benutzernamen der Person, die sich angemeldet hat.
Das Terminal, von dem aus die Anmeldung erfolgte. Ein Eintrag `:0` bedeutet, dass die Person direkt am Linux-Rechner angemeldet war.
Die IP-Adresse des Rechners, von dem aus die Anmeldung erfolgte.
Den Anmeldezeitpunkt mit Datum.
Die Dauer der Sitzung.

Die letzte Zeile zeigt das Datum und die Uhrzeit der ältesten aufgezeichneten Sitzung im Protokoll an.

Bei jedem Hochfahren des Computers wird ein Anmeldeeintrag für den fiktiven Benutzer ‚reboot‘ in das Protokoll eingetragen. Das Terminalfeld wird durch die Kernel-Version ersetzt. Die Dauer der Sitzung bei diesen Einträgen entspricht der Betriebszeit des Rechners.

Anzeigen einer bestimmten Anzahl von Zeilen

Die alleinige Verwendung des Befehls `last` gibt das gesamte Protokoll aus, wobei ein Großteil am Terminalfenster vorbeirauscht. Sichtbar bleiben in der Regel die ältesten Daten des Protokolls. Dies ist wahrscheinlich nicht das, was Sie sehen möchten.

Sie können `last` anweisen, nur eine bestimmte Anzahl von Zeilen anzuzeigen. Geben Sie dazu die gewünschte Anzahl nach dem Befehl ein. Beachten Sie, dass ein Minuszeichen verwendet wird. Um fünf Zeilen zu sehen, geben Sie `-5` und nicht `5` ein:

last -5

Dies zeigt die neuesten fünf Zeilen des Protokolls an.

Anzeigen von Netzwerknamen für Remote-Benutzer

Die Option `-d` (Domain Name System) weist `last` an, zu versuchen, die IP-Adressen von Remote-Benutzern in Computer- oder Netzwerknamen aufzulösen.

last -d

Es ist nicht immer möglich, die IP-Adresse in einen Netzwerknamen aufzulösen, aber der Befehl versucht es.

Ausblenden von IP-Adressen und Netzwerknamen

Wenn Sie an der IP-Adresse oder dem Netzwerknamen nicht interessiert sind, verwenden Sie die Option `-R` (kein Hostname), um diese Spalte auszublenden.

Da dies eine übersichtlichere Ausgabe ohne unschöne Zeilenumbrüche erzeugt, wurde diese Option in den folgenden Beispielen verwendet. Wenn Sie `last` verwenden, um ungewöhnliche oder verdächtige Aktivitäten zu identifizieren, sollten Sie diese Spalte jedoch nicht unterdrücken.

Auswahl von Datensätzen nach Datum

Mit der Option `-s` (seit) können Sie die Ausgabe auf Anmeldeereignisse seit einem bestimmten Datum beschränken.

Um nur Anmeldeereignisse ab dem 26. Mai 2019 zu sehen, verwenden Sie folgenden Befehl:

last -R -s 2019-05-26

Die Ausgabe zeigt Einträge von Anmeldeereignissen ab 00:00 Uhr des angegebenen Tages bis zu den neuesten Einträgen in der Protokolldatei.

Suche bis zu einem Enddatum

Mit `-t` (bis) können Sie ein Enddatum angeben. So können Sie eine Auswahl von Anmeldedatensätzen zwischen zwei Zeitpunkten anzeigen lassen.

Dieser Befehl ruft die Anmeldedatensätze von 00:00 Uhr am 26. bis 00:00 Uhr am 27. ab. Dies beschränkt die Auflistung auf Anmeldesitzungen, die nur am 26. stattgefunden haben.

Zeit- und Datumsformate

Sowohl Zeit als auch Datum können mit den Optionen `-s` und `-t` verwendet werden.

Die verschiedenen Zeitformate, die mit den datums- und zeitbasierten `last` Optionen verwendet werden können, sind (angeblich):

JJJJMMTThhmmss
JJJJ-MM-TT hh:mm:ss
YYYY-MM-DD hh:mm – Sekunden werden auf 00 gesetzt
YYYY-MM-DD – Zeit wird auf 00:00:00 gesetzt
hh:mm:ss – Datum wird auf heute gesetzt
hh:mm – Datum wird auf heute gesetzt, Sekunden auf 00
jetzt
gestern – Zeit wird auf 00:00:00 gesetzt
heute – Zeit wird auf 00:00:00 gesetzt
morgen – Zeit wird auf 00:00:00 gesetzt
+5min
-5 Tage

Warum „angeblich“?

Die zweite und dritte Formatangabe in der Liste funktionierten während der Recherche für diesen Artikel nicht. Die Befehle wurden auf Ubuntu, Fedora und Manjaro getestet. Dies sind Distributionen, die von Debian, RedHat bzw. Arch abstammen. Das deckt alle wichtigen Familien von Linux-Distributionen ab.

last -R -s 2019-05-26 11:00 -t 2019-05-27 13:00

Wie Sie sehen, hat der Befehl überhaupt keine Einträge zurückgegeben.

Die Verwendung des ersten Datums- und Zeitformats aus der Liste mit demselben Datum und denselben Zeiten wie im vorherigen Befehl gibt Einträge zurück:

last -R -s 20190526110000 -t 20190527130000

Suche nach relativen Zeitangaben

Sie können auch Zeiträume angeben, die in Minuten oder Tagen relativ zum aktuellen Datum und der aktuellen Uhrzeit gemessen werden. Hier fordern wir Aufzeichnungen von vor zwei Tagen bis vor einem Tag an.

last -R -s -2days -t -1days

Gestern, Heute und Jetzt

Sie können `yesterday` und `today` als Abkürzungen für das gestrige und das heutige Datum verwenden.

last -R -s yesterday -t today

Das bedeutet nicht, dass es keine Einträge für heute gibt. Dies ist das erwartete Verhalten. Der Befehl fordert Einträge vom Startdatum bis zum Enddatum an. Er enthält keine Einträge innerhalb des Enddatums.

Die Option `now` ist die Abkürzung für „heute zur aktuellen Zeit“. Um die Anmeldeereignisse anzuzeigen, die seit 00:00 Uhr bis zum Zeitpunkt der Befehlsausführung stattgefunden haben, verwenden Sie diesen Befehl:

last -R -s today -t now

Dadurch werden alle Anmeldeereignisse bis zum aktuellen Zeitpunkt angezeigt, auch diejenigen, die noch angemeldet sind.

Die Option `-p` (present)

Mit der Option `-p` (present) können Sie herausfinden, wer zu einem bestimmten Zeitpunkt angemeldet war.

Es spielt keine Rolle, wann sich Benutzer an- oder abgemeldet haben, wenn sie zu dem von Ihnen angegebenen Zeitpunkt am Computer angemeldet waren, werden sie in der Liste angezeigt.

Wenn Sie eine Zeit ohne Datum angeben, wird das heutige Datum angenommen.

last -R -p 09:30

Benutzer, die offensichtlich noch angemeldet sind, haben keine Abmeldezeit; es wird angezeigt, dass sie noch angemeldet sind. Wenn der Computer seit dem von Ihnen angegebenen Zeitpunkt nicht neu gestartet wurde, wird er als noch aktiv angezeigt.

Wenn Sie die Kurzform `now` mit der Option `-p` verwenden, können Sie herausfinden, wer zum Zeitpunkt der Befehlseingabe angemeldet war.

last -R -p now

Dies ist ein etwas umständlicherer Weg, um das zu erreichen, was mit dem Befehl `who` erreicht werden kann.

Der Befehl `lastb`

Der Befehl `lastb` verdient Erwähnung. Er liest Daten aus einem Protokoll namens btmp. Über den Namen dieses Protokolls gibt es etwas mehr Übereinstimmung. Das ‚b‘ steht für „bad“ (schlecht), während der ‚tmp‘-Teil noch diskutiert wird.

`lastb` listet fehlgeschlagene Anmeldeversuche auf. Er akzeptiert die gleichen Optionen wie `last`. Da es sich um fehlgeschlagene Anmeldeversuche handelt, haben alle Einträge eine Dauer von 00:00.

Sie müssen `sudo` mit `lastb` verwenden.

sudo lastb -R

Das letzte Wort

Zu wissen, wer sich wann und von wo bei Ihrem Linux-Computer angemeldet hat, ist eine nützliche Information. In Kombination mit den Details fehlgeschlagener Anmeldeversuche haben Sie erste Anhaltspunkte, um verdächtiges Verhalten zu untersuchen.