inotify - Wie finde ich heraus, welcher Benutzer die Datei geändert hat?

8

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.

    
user837208 03.08.2011, 01:49
quelle

2 Antworten

11

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 ):

%Vor%

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 .

    
Paweł Nadolski 11.08.2011, 09:55
quelle
2

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

    
user2894438 18.10.2013 11:08
quelle