Ich suche nach Anleitungen, wie Sie herausfinden können, welcher Benutzer eine bestimmte Datei geändert hat. Während inotify eine Benachrichtigung erhält, wenn eine bestimmte Datei berührt wird, wie finde ich heraus, welcher Benutzer diese Datei geändert hat? Ich kann daran denken, lsof zu benutzen, aber ich befürchte, dass es nicht so "realtime" ist, wie ich es möchte, und / oder es könnte zu viel von einer Steuer auf Ressourcen sein. In Echtzeit bedeutet das, dass wenn ein Benutzer einfach einen touch
-Befehl für eine Datei ausführt, bis zu dem Zeitpunkt, zu dem lsof
in der Datei ausgeführt wird, er möglicherweise nicht von lsof
übernommen wird.
Sie können audit deamon verwenden:
%Vor%Wählen Sie eine zu überwachende Datei
%Vor% Audit für Schreib- und Attributänderung hinzufügen ( -p wa
):
Die Datei wird von einem Benutzer berührt:
%Vor%Überprüfen Sie die Überwachungsprotokolle:
%Vor% Sie können UID
des Benutzers sehen, der den Befehl in der Ausgabe ausführt
type = SYSCALL msg = audit (1313055675.066: 57): arch = c000003e syscall = 2 Erfolg = Ja Ausgang = 3 a0 = 7ffffb6744dd a1 = 941 a2 = 1b6 a3 = 7ffffb673bb0 items = 1 pp = 3428 pid = 4793 auid = 4294967295 uid = 1000 gid = 1000 euid = 1000 suid = 1000 fsuid = 1000 egid = 1000 sgid = 1000 fsgid = 1000 tty = pts1 ses = 4294967295 comm="touch" exe="/ bin / touch" key="meine-Datei-geändert"
Einzelheiten zur Verwendung finden Sie auf den man-Seiten oder auf dieser Beispielguide .
Wenn Sie im früheren Befehl die Option -i hinzufügen, erhalten Sie eine Ausgabe in besser lesbarem Format. Sie erhalten die UID in den echten Benutzernamen auf dem Server konvertiert.
ausearch -k my-file-changed -i | Schwanz -1
Tags und Links linux filestream filesystems inotify