Ich versuche herauszufinden, wie oft eine Datei geöffnet wurde (seit der Einführung des Betriebssystems). Ich denke daran, dies über stat zu tun, aber die meisten Flags geben nur den Unterschied zwischen dem letzten Zeitpunkt zurück, zu dem sie geöffnet wurden.
linux
filesystems
working-directory
mynameis
quelle
quelle
Antworten:
Diese Antwort erklärt Was muss getan werden, aber die Besonderheiten von Wie hängen Sie von Ihrer Distribution, Ihrem Setup und Zweck ab und welche Tools Sie zum Analysieren der Daten wählen:
Was Sie suchen, ist das Auditd Daemon innerhalb von Linux. Aus der Manpage auditd (8) :
Bei der Überwachung werden im Kernel integrierte Funktionen verwendet, um bei bestimmten Systemaufrufen nach Ihren Vorgaben Protokolle zu erstellen. Nach dem Setup finden Sie die Protokolle in
/var/log/audit
oder irgendwo in Ihrer Distribution ähnlich.Um den Zugriff auf eine Datei zu prüfen, verwenden Sie Folgendes:
Woher
-w
gibt den Pfad zu den Dateien an-p
gibt an, dass das System eine Prüfung durchführt r eads w Riten, e x Ecutions und ein Attribut- oder Berechtigungsänderungen. Endlich, das-k
Mit dieser Option können Sie einen beliebigen Schlüssel angeben, der bei der Suche nach dieser Regel mit verwendet werden soll ausearch .Beachten Sie, dass obwohl auditd arbeitet Systemaufrufe ab,
-p r
verfolgt das nicht lesen Funktion, aber eher öffnen Damit die Protokolle nicht bei jedem Lesevorgang überflutet werden, wird bei jedem Öffnen einer Datei ein Eintrag zum Lesen gemacht.Wenn die Überwachung aktiviert ist und die Protokolle installiert sind, kann mit ausearch diese Protokolle für den gesamten Zugriff auf die angegebenen Dateien analysiert werden, und mit Standardtext- oder Statistiktools können die Ergebnisse erstellt werden. Diese können von abweichen
grep
undwc -l
um die Protokolleinträge zu zählen oder eine Kombination aus Scripting und GNU-R oder Gnuplot Diagramme und Berichte erstellen.Eine andere Alternative ist zu verwenden SELinux . Während SELinux ein Werkzeug zur Zugriffskontrolle ist, das normalerweise nur Zugriffsverweigerungen protokolliert, kann es so eingerichtet werden, dass es ALLE Zugriffe protokolliert und ähnliche Informationen wie auditd bereitstellt.
Bearbeiten: Wenn eine Aufzeichnung des Zugriffs erforderlich ist von Anfang an : Zum Beispiel während der Betriebssysteminstallation, während des Startvorgangs vor dem Start von auditd oder vor der Installation von auditd sind strengere Maßnahmen erforderlich. Ein benutzerdefiniertes Installationsprogramm oder ein benutzerdefiniertes Installationsprogramm
initrd.img
Die Boot-Datei muss möglicherweise erstellt werden, um die erforderlichen Debugger- oder Kernel-Trace-Tools laden zu können. Diese Verfolgungswerkzeuge könnten umfassen dtrace . perf . SystemTap . ktap oder ähnliche Tools auf Debugger-Ebene, um den Zugriff während des Startvorgangs abzufangen. Eine gute Referenz ist http://www.brendangregg.com/linuxperf.html Ein Beispiel für diese Art von Analyse für die Systemleistung ist nicht die Prüfung Bootchart .Die Einrichtung dieser Einstellung liegt jedoch außerhalb meines Erfahrungsbereichs - ich hoffe, dass die Referenzen sich als nützlich erweisen.
quelle
i_*time
für verschiedene Interaktionszeiten: Zugriff, Inode-Änderung, Datenänderung und Löschung.