In meinem Ausgangsverzeichnis sind plötzlich drei Dateien mit den Namen "client_state.xml", "lockfile" und "time_stats_log" aufgetaucht. Die letzten beiden sind leer. Ich frage mich, wie sie dorthin gekommen sind. Es ist nicht das erste Mal, dass es passiert ist, aber das letzte Mal war vor Wochen; Ich habe die Dateien gelöscht und nichts ist kaputt gegangen oder ich habe mich beschwert. Ich konnte mir nicht vorstellen, was ich zu dem Zeitpunkt tat, als von berichtet wurde stat $filename
. Kann ich auf irgendeine Weise herausfinden, woher sie kommen?
Gibt es alternativ eine Möglichkeit, das Ausgangsverzeichnis (aber nicht die Unterverzeichnisse) für die Erstellung von Dateien zu überwachen?
files
monitoring
Wolf
quelle
quelle
Antworten:
Ich glaube nicht, dass es eine Möglichkeit gibt, festzustellen, mit welchem Programm eine Datei erstellt wurde.
Zu Ihrer alternativen Frage: Sie können die wiederherzustellende Datei jedoch mit überwachen
inotify
.inotifywait
ist eine Befehlszeilenschnittstelle für dasinotify
Subsystem; Sie können festlegen, dasscreate
in Ihrem Home-Verzeichnis nach Ereignissen gesucht werden soll:Sie möchten es wahrscheinlich mit
-m
(monitor) ausführen, um zu verhindern, dass es nach dem ersten Ereignis beendet wirdquelle
inotify
? Es ist nicht installiert (Kernel 2.6.34) und es gibt keine/dev/inotify
.CONFIG_INOTIFY_USER
(Filesystems
->Inotify support for userspace
).inotifywait
ist wahrscheinlich in einem Paket mit dem Nameninotify-tools
inotify-tools
Paket enthält , also habe ich jetztinotifywait
(undinotifywatch
). Ich habe es ausprobiert und es scheint zu funktionieren.Sie können alles beobachten, was in einem Dateisystem passiert, indem Sie über LoggedFS darauf zugreifen . Dies ist ein gestapeltes Dateisystem , das jeden Zugriff in einem Verzeichnisbaum protokolliert.
Wenn Sie Ihr gesamtes Basisverzeichnis protokollieren, wird Ihr System möglicherweise langsamer. Sie sollten mindestens eine Konfigurationsdatei mit strengen Filtern schreiben .
Wenn Sie unter Linux über Root-Zugriff verfügen, können Sie mit dem Überwachungssubsystem eine Vielzahl von Dingen protokollieren, einschließlich Dateisystemzugriffen. Stellen Sie sicher, dass der
auditd
Dämon gestartet ist, und konfigurieren Sie dann, mit was Sie sich anmelden möchtenauditctl
. Jeder protokollierte Vorgang wird in/var/log/audit/audit.log
(bei typischen Distributionen) aufgezeichnet . So starten Sie das Ansehen einer bestimmten Datei:oder in der langen Form
Wenn Sie ein Verzeichnis (mit
-w
oder-F dir=
) überwachen, werden auch die darin enthaltenen Dateien und deren Unterverzeichnisse rekursiv überwacht.quelle
Vielleicht möchten Sie einen Blick darauf werfen
auditd
, mit diesem Paket können Sie Sicherheitsüberprüfungen durchführen und eine Menge Informationen darüber erhalten, wer was im Dateisystem geändert hat.quelle
Ich weiß, dass dies eine alte Frage ist, aber ich werde einen anderen Ansatz vorschlagen, nur für den Fall, dass jemand es nützlich findet. Ich habe dies ursprünglich als Antwort auf eine Frage gepostet, die auf diese Frage gestellt wurde.
Eine Option ist die Verwendung
sysdig
einer Open-Source-Systemüberwachungsanwendung. Mit dieser Funktion können Sie die Aktivität einer Datei nach Namen überwachen. Angenommen, Sie möchten sehen, bei welchem Prozess eine Datei mit dem Namen erstellt wurde/tmp/example.txt
:An dieser Ausgabe können Sie erkennen, dass ein
touch
mit pid 5470 benannter Prozess die Datei geöffnet hat.Wenn Sie weitere Informationen wünschen, können Sie im "Erfassungsmodus" ausführen, in dem eine Systemaufruf-Ablaufverfolgung gesammelt wird:
Warten Sie, bis die Datei erstellt wurde. Halten Sie dann an
sysdig
und führen Sie Folgendes aus:So können Sie alles erkunden, was passiert ist. Sie können drücken
<F2>
und auswählenFiles
. Drücken Sie<F4>
, um nach dem Dateinamen zu suchen. Drücken Sie dann, um<F6>
zu "graben" (was eine Ausgabe ähnlich dem obigen Befehl anzeigt). Auf diese Weise können Sie auf dieselbe Weise nach Informationen über den Prozess suchen, der die Datei tatsächlich erstellt hat.Es gibt eine GUI-Version von
csysdig
Calledsysdig-inspect
, wenn das mehr Ihre Tasse Tee ist.quelle
Sie haben nicht die Möglichkeit
inotify
, ein Skript zu schreiben, das in einer Schleife nach der Datei sucht:quelle