Skip to content

Glossar

wtmpdb

Der SQLite-Ersatz für wtmp (wtmp.db) mit einer Zeile pro Sitzung, Zeiten in Mikrosekunden und PAM-Dienstnamen; genutzt von openSUSE und Debian 13.

wtmpdb ist der SQLite-Ersatz für die klassische wtmp-Datei. Die 32-Bit-Zeitfelder von struct utmp auf x86_64 laufen im Januar 2038 über, deshalb speichern neuere Distributionen den Login-Verlauf in einer Datenbank: /var/lib/wtmpdb/wtmp.db im Upstream-Projekt und auf openSUSE, /var/log/wtmp.db auf Debian 13. Geschrieben wird sie vom Modul pam_wtmpdb, gelesen mit wtmpdb last.

Die Daten stehen in einer Tabelle, wtmp(ID, Type, User, Login, Logout, TTY, RemoteHost, Service). Type ist 1 für BOOT_TIME, 2 für RUNLEVEL und 3 für USER_PROCESS. Login und Logout sind Mikrosekunden seit der Epoche. Anders als bei wtmp gibt es eine Zeile pro Sitzung: Die Logout-Zeit wird beim Sitzungsende eingetragen, und die Spalte Service hält den PAM-Dienst fest (sshd, login), den das klassische Format nie hatte.

Warum es in Ermittlungen wichtig ist

Auf umgestellten Hosts können die alten Dateien fehlen oder veraltet sein, und wer nur nach /var/log/wtmp sucht, schließt fälschlich, es gebe keine Login-Einträge. Debian 13 hat last, lastb und lastlog entfernt und liefert wtmpdb und lastlog2 als eigene Pakete aus; ein aktualisierter Host hat daher womöglich gar keine Login-Datenbank. Prüfen Sie das, bevor Sie von Löschung sprechen. SQLite bringt außerdem ein Write-Ahead-Log mit: Sichern Sie die Datei wtmp.db-wal neben der Datenbank, falls vorhanden, denn jüngste Zeilen können noch darin stehen. Die Spalte Service hilft, SSH-Logins von Konsolen-Logins zu unterscheiden, ohne auth.log heranzuziehen.

Beispiel

sqlite3 wtmp.db "SELECT User, TTY, RemoteHost, Service, datetime(Login/1000000,'unixepoch'), datetime(Logout/1000000,'unixepoch') FROM wtmp;"
wtmpdb last -F -f wtmp.db

Teilen Sie vor der Umrechnung durch 1.000.000, da die Zeiten in Mikrosekunden vorliegen. Das Gegenstück lastlog2 (/var/lib/lastlog/lastlog2.db) nutzt eine Tabelle Lastlog2(Name, Time, TTY, RemoteHost, Service) mit Time in Sekunden.

Verwandte Begriffe

  • wtmp und btmp: das Binärformat, das es ersetzt.
  • lastlog: seinerseits durch lastlog2 ersetzt.
  • pam_unix: die PAM-Dienstnamen, die in Service landen.

Linux Log Parser liest wtmp.db und lastlog2.db. Siehe Forensik von wtmp, btmp und lastlog.