Verfolgen von Dateisystemänderungen unter Linux

8

Nach der Installation eines Updates / eines neuen Pakets scheint es keine standardisierte Möglichkeit zu geben, die am Dateisystem vorgenommenen Änderungen zu untersuchen. Eine einfache utililty eine Dateiliste des gesamten Systems vor und nach der Installation etwas zu schaffen , würde eine Menge, da hilft diff Sie die zwei Dateilisten die Änderungen auf das Dateisystem offenbaren würde. Es wäre auch ein großartiges Tool, um zu erkennen, welche Konfigurationsdateien von einem bestimmten GUI-Einstellungsfeld geändert werden. Was ist der effektivste Weg, um dieses Problem zu lösen?

Danke für Ihre Hilfe.


quelle
Dieses Konzept ist praktisch, um mehrstufige Docker-Images zu erstellen, bei denen komplexe Installationsskripte mehrere Softwareteile einrichten.
Geordie

Antworten:

10

Die meisten Paketmanager sagen Ihnen genau, welche Dateien sie installiert haben:

dpkg -L <pkgname>
rpm -ql <pkgname>

Dies sagt jedoch nichts über Änderungen aus, die die Postinstall-Skripte möglicherweise vorgenommen haben. Ich würde argumentieren, dass der Versuch, einen Dateisystem-Snapshot nach der Installation zu unterscheiden, übertrieben ist. Es gibt eine Reihe von Tools zum Verfolgen des Dateizugriffs, die hilfreich sein können.

  • InstallWatch verfolgt Dateisystemänderungen während einer Installation.
  • Jedes hostbasierte Intrusion Detection-System beschwert sich nach der Installation eines Pakets lautstark. Ich benutze Samhain .
  • Die Audit-Oberfläche des Kernels kann so eingestellt werden, dass diese Informationen für Sie nachverfolgt werden.
Insyte
quelle
3

Einrichten und Verwenden von Tripwire .
Tripwire verwendet eine Prüfsummenliste kritischer Dateien, um Einbrüche zu erkennen.

Sie könnten etwas Ähnliches verwenden
(entweder Tripwire selbst oder ein Skript, das Prüfsummen von Dateien
vor und nach Ihrer Änderungsaktivität generiert ).

MD5-Prüfsummen sind recht schnell und bereits verfügbar als md5sum.

nik
quelle
3

Suchen, was geändert wurde:
Zusätzlich zu den Aussagen von Instyle können Sie mithilfe von Suchen auch Dateien suchen, die in den letzten 10 Jahren geändert wurden: 10 Minuten:

find / -mmin -10

Revisionskontrolle:
Sie können / etc auch mit Subversion unter Versionskontrolle stellen. Hier ist ein Blogeintrag dazu .

Schnappschüsse:
Sie könnten auch lvm-Schnappschüsse verwenden , dies könnte jedoch übertrieben sein.

Kyle Brandt
quelle
1

Wenn Sie Debian / Ubuntu-Benutzer sind, versuchen Sie es mit etckeeper

user16233
quelle
1

Es gibt viele solcher Dienstprogramme. Ich benutze afick .

Wazoox
quelle
nicht hilfreich. Erzählen Sie uns nur über die Änderungen, aber nicht darüber, welcher Prozess / Benutzer / Skript die Änderung vorgenommen hat
Farhan
@ Farhan "nicht hilfreich." Ist eine ziemlich kühne Behauptung. Es ist eine weltweite Gemeinschaft. Auch wenn es nicht den genauen Bedürfnissen des OP entspricht, sind die OP-Bedürfnisse die kleinste Minderheit der Besucherbedürfnisse. Genau das habe ich gesucht. Leider waren 90% der Google-Ergebnisse inotify-bezogen und für mich nicht hilfreich . Aus diesem Grund ist es gut, Antworten zu geben, die anderen Personen als dem OP helfen können.
Bruno Bronosky
0

Ich werde dies aus einem anderen Blickwinkel betrachten, da Sie nicht genau gesagt haben, wen Sie die Systeme modifizieren würden. Abhängig von Ihrer Umgebung besteht die richtige Lösung möglicherweise darin, keine Änderungen auf dem lokalen System zuzulassen. Bei Verwendung eines Konfigurationsmanagementsystems wie Puppet in Verbindung mit der Revisionskontrolle werden alle Änderungen auf einem zentralen System aufgezeichnet und dann entsprechend angewendet.

Chad Huneycutt
quelle
0

Dies ist nicht spezifisch für die Frage des OP (vom Paketmanager vorgenommene Änderungen), aber ich habe dieses Dienstprogramm gefunden, mit dem ich feststellen kann, welche Dateien sich systemweit geändert haben.

Ich benutze dies, weil ich die Tendenz habe, mit neuen VMs zu beginnen und viele Änderungen vorzunehmen, um sie nach Bedarf aufzubauen. Sobald ich fertig bin, entscheide ich, ob ich ein AWS AMI erstellen oder Kochbücher / Rezepte usw. schreiben soll. Manchmal ist es ein Raspberry Pi und dann gibt es eine ganze Reihe anderer Herausforderungen.

Was ich als das einfachste empfunden habe, ist Hashdeep

Bruno Bronosky
quelle