Wie kann ich herausfinden, welcher Benutzer ein Verzeichnis gelöscht hat?

8

Mein Ubuntu-Server hat ungefähr 30 aktive Benutzer. Ich persönlich kenne jeden, der den Server benutzt. Kürzlich haben ein paar Freunde und ich an einem Projekt gearbeitet. Wir haben ein neues Verzeichnis für das Projekt erstellt und da jeder jeden kennt, haben wir uns nicht die Mühe gemacht, unsere Arbeit unter einer Reihe von Berechtigungen zu schützen. Wir hätten es aber tun sollen, weil wir heute Morgen aufgewacht sind und festgestellt haben, dass jemand unser gesamtes Verzeichnis entfernt hat.

Unsere Arbeit wird jede Nacht gesichert, daher ist es wirklich keine große Sache, unsere Arbeit wiederherzustellen. Wir möchten jedoch herausfinden, wer es entfernt hat, damit wir sie konfrontieren können. Bisher ist das Beste, was wir uns ausgedacht haben, um unseren Täter zu finden, die Überprüfung der Bash-Geschichte aller, aber dies ist lang und langwierig, und es besteht die Möglichkeit, dass unser Täter, wenn hinter der Verzeichnisentfernung eine böswillige Absicht steckt, wahrscheinlich seine geändert hat, um ihre Spuren zu verwischen (oder natürlich könnten sie eine andere Shell verwenden).

Was ist also im Grunde der einfachste und schnellste Weg, um herauszufinden, wer ein Verzeichnis gelöscht hat?

Vielen Dank im Voraus für Ihre Zeit.

Rob S.
quelle
2
Ich denke nicht, dass es möglich ist.
Enzotib
4
Verwenden Sie beim nächsten Mal ein Versionskontrollsystem oder SparkleShare (das ein VCS verwendet git) oder einen verschlüsselten Ordner (mit [gnome- ] encfs ), der mit Ubuntu One oder Dropbox synchronisiert ist.
dAnjou
@dAnjou Wir haben Git und Subversion auf unserem Server installiert, aber da wir an einer Website gearbeitet haben, auf der wir ständig Dateien hinzugefügt / entfernt haben, schien es ein unnötiger Aufwand zu sein, sich mit beiden zu beschäftigen. Wie ich in meiner Frage angedeutet habe, hätten wir wahrscheinlich eine Gruppe bilden und das Verzeichnis nur für unsere Gruppe zugänglich machen sollen. Unabhängig davon können wir alle unsere Arbeiten zurückerhalten, da wir sie gesichert haben. Ich mache mir derzeit Sorgen, dass ein Benutzer keine Verzeichnisse auf dem System löscht, mit denen er nicht verbunden ist. Ich vertraue darauf, dass alle meine Benutzer so etwas nicht tun, was mich wirklich stört.
Rob S.
Ja, nicht möglich.
Psusi
1
Sie können nach Löschungen (oder Änderungen) an Dateien suchen. Siehe cyberciti.biz/tips/… undman auditctl
Lekensteyn

Antworten:

5

Ich habe keine magische Antwort auf Ihre Frage gefunden. Ein Teil dieses Grundes wird hier detailliert beschrieben: /superuser/178596/checking-user-command-history-in-unix

Mit diesem einfachen Befehl können Sie nachverfolgen, was passiert ist, indem Sie in allen Shell-Verlaufsdateien in den Home-Verzeichnissen aller Benutzer nach rm & mv-Befehlen suchen:

find /home -type f -iname .*history -exec grep "rm\|mv" {} \;

Es ist gut, dass Sie eine gültige Sicherung haben, um Sie zu speichern, aber ich empfehle dringend, einige Gruppen für Projektordner zu erstellen und diesen Gruppen nur Benutzerkonten hinzuzufügen. Das erspart Ihnen in Zukunft viel Schmerz.

Beispiel: Fügen Sie eine Gruppe hinzu und fügen Sie Projektteammitglieder hinzu

groupadd coolproject
adduser jim coolproject
adduser joe coolproject
adduser charlie coolproject

Stellen Sie die Berechtigungen rekursiv richtig ein und garantieren Sie dem Team künftigen Zugriff, unabhängig davon, wer Dateien erstellt / bearbeitet

chown -R yourusername:coolproject /path/to/projectdir
find /path/to/projectdir -type d -exec chmod 2775 {} \;

(Die 2 setzt den Gruppenbesitz auf "klebrig", um sicherzustellen, dass der Gruppenbesitzer eines Projekts "coolproject" bleibt.)

find /path/to/projectdir -type f -exec chmod 664 {} \;

Hoffe das hilft dir raus! B-)

Chad Stovern
quelle
Vielen Dank! Ich habe Ihren Befehl in "find / home -type f -iname. * History -print -exec grep" rm \ | mv "{} \;" geändert, damit ich die Dateinamen der Historien abrufen kann, die interessante Informationen ergeben.
Rob S.
ausgezeichneter Rob! Ich bin froh, dass ich helfen konnte. =)
Chad Stovern
1

Theoretisch ist es möglich, die Löschzeit herauszufinden, wodurch die Benutzer eingegrenzt werden können.

Überprüfen Sie die i_dtime in ext2-Spezifikationen .

ordnen
quelle