Erstellungsdatum des lokalen Kontos


9

Aus Compliance-Gründen müssen Informationen zum Erstellungsdatum lokaler (Benutzer- und Nichtbenutzer-) Konten auf UNIX-Computern abgerufen werden.

Gibt es eine Möglichkeit (auch wenn dies nicht die zuverlässigste oder genaueste Methode ist), diese Art von Informationen zu sammeln?

Als Alternative habe ich beispielsweise nach dem homeErstellungsdatum des Verzeichnisses (für Benutzerkonten) gesucht , aber festgestellt, dass für POSIX-kompatible Systeme keine Zeitstempel für die Dateierstellung verfügbar sind.


Als grobe Annäherung, ich denke , die beste Wahl in eine forensische Graben zu tun ist /var/log/auth.log(man kann auch in den rotierten logs suchen müssen: /var/log/auth.log.1, /var/log/auth.log.2.gz, ...). Dies gibt Ihnen einen Hinweis auf das erste Datum, an dem sich das Benutzerkonto authentifiziert hat. Dies funktioniert jedoch nicht für Systembenutzer und schlägt auch fehl, wenn die Konten vor einem längeren Zeitraum als dem syslogProtokollrotationszeitraum Ihres Protokolls erstellt wurden.
Joseph R.

Diese spezifischen Informationen werden standardmäßig nirgendwo gespeichert. Aber Sie können versuchen, das Änderungsdatum von/home/user
Nidal

Antworten:


3

Wenn es seit der Benutzererstellung erstellt und nicht berührt wurde , können Sie anhand der .bash_logoutDatei das Datum bestimmen. Als Root-Lauf:

ls -l /home/<username>/.bash_logout

ODER: Wenn der Benutzer über ein Ausgangsverzeichnis verfügt, können Sie das Datum der letzten Änderung dieses Verzeichnisses überprüfen:

ls -ld /home/username/

um nur das Datum zu erhalten, das Sie verwenden können awk:

ls -ld /home/username/ | awk '{ print $6,$7,$8 }'

Quelle


ls -ld /home/username/gibt die Änderungszeit des Home-Verzeichnisses an, was wahrscheinlich nicht sinnvoll ist, da diese Zeit jedes Mal aktualisiert wird, wenn eine Datei im Home-Verzeichnis hinzugefügt oder entfernt wird.
Gilles 'SO - hör auf böse zu sein'

3

Die Kontoerstellung kann protokolliert werden. Führt unter Linux (bei Verwendung der allgemeinen Shadow Utility Suite) useraddeinen Protokolleintrag unter der Funktion durch auth.info. Dieses Protokoll befindet sich normalerweise in /var/log/secureoder /var/log/auth.log(dies hängt von der Verteilung ab).

Sie können Ihre Backups überprüfen /etc/passwdund feststellen, welches das jüngste Backup ist, das dieses Konto nicht hat. Ich benutze und empfehle etckeeper , um Änderungen zu verfolgen /etc, also git annotate /etc/passwdwürde ich die Antwort geben. ( git annotateWürde mir tatsächlich sagen, wann der letzte Eintrag eines Benutzers geändert wurde; ein bisschen mehr Graben, dessen Automatisierung außerhalb des Rahmens dieser Antwort liegt, würde mir sagen, wann der Eintrag hinzugefügt wurde.)

Wenn Ihnen Überwachungsprotokolle, Sicherungen und der Revisionsverlauf fehlen, müssen Sie auf Heuristiken zurückgreifen. Ein guter Hinweis ist die Datei, deren Inode-Änderungszeit (ctime) die älteste ist. Diese Heuristik kann in beide Richtungen erfolgen: Wenn ein Verzeichnis in die Startseite des Benutzers verschoben wird, enthält es möglicherweise Dateien mit einer alten ctime (aber damit sie älter als der Benutzer sind, muss ihre UID nicht die des Benutzers sein, um dies zu ändern von uid beinhaltet das Aktualisieren der ctime, damit Sie die Dateien überspringen können, die nicht dem Benutzer gehören); Umgekehrt können einige Ereignisse die Uhrzeit einer Datei ändern (z. B. wenn das gesamte System aus einer Sicherung wiederhergestellt wurde). Sie können vom Home-Verzeichnis des Benutzers ( ls -Alctr ~bob| sed -n 2p) ausgehen, das möglicherweise Dateien enthält /etc/skel, die der Benutzer nie geändert hat ( .bash_logouthäufig verwendet wird), und prüfen, ob ältere Dateien mit vorhanden sind find ~bob ! -cnewer ~bob/.bash_logout -user bob. Mit zsh ausführenls -ld ~bob/**/*(Doc[1]u:bob:).


1
$ chage -l fred

Überprüft das Änderungsdatum des Passworts.


+1: Im Vergleich zu den anderen Antworten haben wir mit Ausnahme der Überwachungsprotokolle (die nicht verfügbar sein müssen) und LDAP (die sich nicht auf ein lokales Konto beziehen) keine zuverlässigen Methoden, um die Erstellung zu bestimmen Daten, nur eine Reihe von Attributen, um sich ein Bild zu machen. Dies ist einer von ihnen und auf meinem System stellte sich heraus, dass er am genauesten war (die Leute haben einfach keine Passwörter geändert), allerdings nur mit der Präzision von Tagen.
user1182474

1

Für lokale Benutzer können Sie die Geburtszeit ihres Home-Verzeichnisses für die Systeme und Dateisysteme einsehen, die sie aufzeichnen (Linux, die meisten BSDs, mindestens MacOS). Wie das geht, hängt vom System ab .

Für Benutzer in LDAP-Verzeichnissen können Sie die createTimestamp(oder möglicherweise whenCreated) Attribute des entsprechenden LDAP-Eintrags anzeigen:

ldapsearch -LLL -x -H ldaps://ldap.example.com -s sub \
  -b dc=example,dc=com 'uid=username' createTimestamp whenCreated
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.