Ich brauche ein Skript, das jeden Zugriff auf eine Festplatte oder ein Verzeichnis protokolliert (einfach in die Konsole oder Datei ausgeben) (bei mir funktioniert beides). Ich möchte auch wissen, worauf genau zugegriffen wurde (welches Unterverzeichnis oder welche Datei). Mein System ist Ubuntu Linux. Ist das möglich und wie kann ich es machen?
Antwort1
Schauen Sie sich inotify an, das ist so ziemlich genau das, wofür es gebaut wurde. IBM hat eine halbwegs anständige Einführung (wenn auch etwas veraltet) unterhttp://www.ibm.com/developerworks/linux/library/l-inotify.html
Antwort2
Wenn Sie die Aktionen eines einzelnen Programms mit einem einfachen Filterskript überwachen möchten, sehen Sie sich allgemeiner „auditd“ von SElinux an.
http://en.wikipedia.org/wiki/Strace http://linux.die.net/man/8/auditd
Sehen Sie sich auf der Windows-Seite Filemon von den SysInternals-Leuten an.
http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx
Antwort3
Sie könneninkron, ein cron-ähnliches Tool für Dateisystemereignisse von inotify.
Sie können eine Aktion definieren, die jedes Mal ausgeführt werden soll, wenn das Ereignis IN_ACCESS eintritt.
Die Konfiguration ist so einfach wie Cron:
<path> <mask> <command>
Wo:
<path>
ist ein Dateisystempfad (jedem Leerzeichen muss ein Backslash vorangestellt werden)<mask>
ist eine symbolische (siehe inotify.h; verwenden Sie Kommas zum Trennen von Symbolen) oder numerische Maske für Ereignisse<command>
ist eine Anwendung oder ein Skript, das bei den Ereignissen ausgeführt wird
Antwort4
Wenn Sie wirklich sicher sind, dass Sie diese große Ausgabe sehen möchten, können Sie auditd verwenden. Es kann jedoch zu einer Endlosschleife kommen, wenn Sie die Ausgabe in eine Datei drucken möchten, da jeder Zugriff auf eine Datei bedeuten würde, dass die Ausgabe in Ihre Protokolldatei gedruckt wird. Das Drucken in eine Protokolldatei ist auch ein Zugriff auf eine Datei, daher sollte es auch in die Protokolldatei gedruckt werden. Seien Sie also vorsichtig.
Auch wenn es keine Endlosschleife gibt, dürfte die Menge der ausgegebenen Daten sehr groß sein. Wenn Sie Ihre Frage dahingehend ändern, was Sie mit dieser Überwachung erreichen möchten, können Ihnen vielleicht andere einen besseren Weg vorschlagen, als den Zugriff auf alle Dateien zu protokollieren.