Möchte man über das komplette Dateisystem eines Linux-Systems Hashsummen erstellen, um z.B. spätere Manipulationen aufzudecken, helfen die Kommandozeilenprogramme md5sum
oder sha256sum
nicht direkt weiter.
Diese beherrschen von sich aus weder das rekursive Durchlaufen von Verzeichnisbäumen noch den Umgang mit Pseudodateisystemen. Doch dieses Problem läßt sich auch einfach mit einer Kombination aus find
, grep
, xargs
und dem jeweiligen Checksummenprogramm lösen.
Das Anlegen der Checksummendatei (md5sum.txt bzw. sha256sum.txt) geschieht folgendermaßen:
find / -type f -print0 | grep -v '^\/sys\/' | grep -v '^\/proc\/' | grep -v '^\/dev\/' | xargs -0 -I% md5sum "%" > md5sum.txt
find / -type f -print0 | grep -v '^\/sys\/' | grep -v '^\/proc\/' | grep -v '^\/dev\/' | xargs -0 -I% sha256sum "%" > sha256sum.txt
Erklärung der einzelnen Teile:
find
listet alle Dateien inlusive vollem Verzeichnispfad ausgehend vom Wurzelverzeichnis "/" auf.grep
-Befehle filtern die Pseudodateisysteme /sys, /proc und /dev heraus.xargs
nimmt jeweils einen Dateinamen entgegen und gibt ihn an die Hashprogramm weiter. Hierbei wird das Prozentzeichen durch "-I%" zum Dateinamenplatzhalter.Die Überprüfung erfolgt dann mittels (durch "--quiet" werden nur geänderte Dateien aufgelistet):
md5sum -c --quiet md5sum.txt
sha256sum -c --quiet sha256sum.txt