Wie finde ich heraus, wer Dateien auf einem Linux-Server löscht?


7

Wir haben einen Linux-Server, der Ext4 ist, und einen anderen Linux-Server, der eine ISCSI hat, auf der Windows-Clients freigegebene Ordner haben

  1. Ermöglichen Sie Benutzern, Dateien zu ändern und nicht zu löschen. Ein Benutzer hat die Berechtigung, Inhalte zu ändern, kann jedoch die Dateien selbst nicht löschen.
    1. Überprüfen Sie alle Operationen zum Hinzufügen / Löschen / Ändern von Dateien in einem englischen Protokollformat.
    2. Senden Sie Benachrichtigungen, wenn versucht wird, sie zu löschen

2
Das Problem mit Ihrem Plan ist, dass die meisten guten Editoren Änderungen an Dateien speichern, indem sie zuerst die neue Datei in einen anderen Dateinamen schreiben, dann die alte entfernen und die neue Datei in den richtigen Namen umbenennen. Hinzu kommt die Neigung von Windows-Programmen wie Word, ihre temporären Dateien im selben Ordner wie das Originaldokument zu speichern und die Datei zu entfernen, wenn dies erledigt ist. Dies wird eine schwierige Aufgabe sein.
DerfK

Aber diese sind nicht für Redakteure für einige der Abteilungen, und sie dürfen dies nicht als Übung tun
Ramdaz

2
Was meinst du damit, dass sie dies nicht dürfen? DerfK hat darauf hingewiesen, dass einige Software einfach nicht funktioniert, wenn Sie nicht zulassen, dass Dateien gelöscht / umbenannt werden.
Zoredache

Gibt der Linux-Server die Ordner für Samba / CIFS frei?
kbulgrien

Klingt so, als müssten Sie Ihre Richtlinie neu bewerten. Es gibt keinen großen Unterschied zwischen Schreiben und Löschen. Was ist, wenn sie eine leere Datei schreiben? Befürchten Sie, dass der Inhalt der Dateien gelöscht wird oder dass die fehlenden Dateien als Abhängigkeit etwas beschädigen?
David Houde

Antworten:




1

Schauen Sie sich inotify-Tools an, oder wenn Sie Programmierer sind, können Sie Ihre eigenen rollen, die passen. Es ist nicht so schwer zu tun; Am schwierigsten ist es, alle Unterverzeichnisse im Auge zu behalten und sich mit dem Hinzufügen / Löschen / Umbenennen von Verzeichnissen zu befassen.

Ich habe inotify-basierte Programme, die auf einigen meiner Server ausgeführt werden. In dem Beispiel, in dem meine gescannten privaten Dokumente (Rechnungen, Quittungen usw.) gespeichert sind, habe ich ein Programm, das in einem Verzeichnisbaum nach neuen Dateien sucht. Wenn ein neues Dokument erstellt wird, wird es sofort PGP-verschlüsselt (es sei denn, das neue Dokument ist natürlich pgp-verschlüsselt). Ein anderes, ähnliches Programm sendet alle Änderungen in einem bestimmten Baum an einen anderen Server in der Ferne.

Ich konnte sehen, wie eine davon geändert wurde, um einfach in eine Überwachungsdatei zu schreiben, die dann nach Bedarf überprüft werden konnte. Der schwierigste Teil, den ich darin sehe, ist sicherzustellen, dass die Überwachungsdatei nicht zu groß wird.

Ich werde eines davon überprüfen, um festzustellen, ob es öffentlich zugänglich ist. Wenn ja, werde ich einen Ort finden, an dem ich es teilen kann.


1

Verwenden Sie das Linux :: Inotify2- Perl Modul. Schreiben Sie ein PerlSkript und behalten Sie es als laufenden Daemon bei.

Sie können in bestimmten Verzeichnissen nach folgenden Ereignissen Ausschau halten:

IN_ACCESS            object was accessed
 IN_MODIFY            object was modified
 IN_ATTRIB            object metadata changed
 IN_CLOSE_WRITE       writable fd to file / to object was closed
 IN_CLOSE_NOWRITE     readonly fd to file / to object closed
 IN_OPEN              object was opened
 IN_MOVED_FROM        file was moved from this object (directory)
 IN_MOVED_TO          file was moved to this object (directory)
 IN_CREATE            file was created in this object (directory)
 IN_DELETE            file was deleted from this object (directory)
 IN_DELETE_SELF       object itself was deleted
 IN_MOVE_SELF         object itself was moved
 IN_ALL_EVENTS        all of the above events

 IN_ONESHOT           only send event once
 IN_ONLYDIR           only watch the path if it is a directory
 IN_DONT_FOLLOW       don't follow a sym link
 IN_MASK_ADD          not supported with the current version of this module

 IN_CLOSE             same as IN_CLOSE_WRITE | IN_CLOSE_NOWRITE
 IN_MOVE              same as IN_MOVED_FROM | IN_MOVED_TO
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.