Gibt es in Unix eine Möglichkeit herauszufinden, wer in der letzten Woche auf eine bestimmte Datei zugegriffen hat? Es kann ein Benutzer oder ein Skript sein, das es an einen anderen Ort überträgt. Kann ich eine Liste der Benutzernamen erhalten, die auf eine bestimmte Datei zugegriffen haben? Wie kann ich herausfinden, wer auf eine bestimmte Datei zugreift??
Akzeptierte Antwort:
Wer auf welche Datei zugegriffen hat, wird nicht protokolliert, es sei denn, Sie verfügen über äußerst ungewöhnliche Protokollierungsrichtlinien (das wäre eine riesige Menge an Informationen). Wer wann eingeloggt war, können Sie den Systemprotokollen entnehmen; der last
Der Befehl gibt Ihnen den Anmeldeverlauf und andere Protokolle wie /var/log/auth.log
teilt Ihnen mit, wie sich Benutzer authentifiziert haben und von wo aus sie sich angemeldet haben (welches Terminal oder welcher Host, falls entfernt).
Das Datum, an dem eine Datei zuletzt gelesen wurde, wird als Zugriffszeit oder kurz atime bezeichnet. Alle Unix-Dateisysteme können es speichern, aber viele Systeme zeichnen es nicht auf, weil es eine (normalerweise kleine) Leistungseinbuße hat. ls -ltu /path/to/file
oder stat /path/to/file
zeigt die Zugriffszeit der Datei an.
Wenn ein Benutzer auf die Datei zugegriffen hat und nicht versucht hat, seine Spuren zu verbergen, wird sein Shell-Verlauf (z. B. ~/.bash_history
) kann Hinweise haben.
Um herauszufinden, was oder wer gerade eine Datei geöffnet hat, verwenden Sie lsof /path/to/file
.
Um zu protokollieren, was in Zukunft mit einer Datei passiert, gibt es mehrere Möglichkeiten:
-
Verwenden Sie inotifywait.
inotifywait -me access /path/to
gibt eine Zeile/path/to/ ACCESS file
aus wenn jemandfile
liest . Diese Schnittstelle sagt Ihnen nicht, wer auf die Datei zugegriffen hat; Sie könnenlsof /path/to/file
aufrufen sobald diese Zeile erscheint, aber es gibt eine Race-Condition (der Zugriff kann beendet sein, wenn lsof startet). -
LoggedFS ist ein stapelbares Dateisystem, das eine Ansicht eines Dateisystembaums bietet und eine schickere Protokollierung aller Zugriffe über diese Ansicht durchführen kann. Informationen zur Konfiguration finden Sie unter LoggedFS-Konfigurationsdateisyntax.
-
Sie können das Audit-Subsystem von Linux verwenden, um eine große Anzahl von Dingen zu protokollieren, einschließlich Dateisystemzugriffen. Stellen Sie sicher, dass
auditd
Daemon gestartet ist, konfigurieren Sie dann mitauditctl
, was Sie protokollieren möchten . Jeder protokollierte Vorgang wird in/var/log/audit/audit.log
aufgezeichnet (bei typischen Distributionen). So starten Sie die Wiedergabe einer bestimmten Datei:auditctl -w /path/to/file
Wenn Sie ein Verzeichnis überwachen, werden die Dateien darin und seine Unterverzeichnisse rekursiv ebenfalls überwacht.