Mit Checkit Dateiintegrität prüfen

Mit Checkit Dateiintegrität prüfen
29.04.2014 17:08

Selbst schreibgeschützte Dateien können sich verändern. Sei es, weil ein Programm oder Skript Amok läuft, oder die SSD beziehungsweise Festplatte schleichend den Geist aufgibt. Insbesondere diese „Bitfäule“ erkennt man meist erst, wenn man ein Urlaubsfoto öffnet und der Oma ein dicker grüner Streifen über das Gesicht läuft.

Das kleine Werkzeug Checkit verspricht, manipulierte und defekte Dateien zu erkennen. Das macht Backups zwar nicht überflüssig, deckt aber zumindest Dateifehler frühzeitig auf. Zudem läuft man nicht Gefahr, ein defektes Dokument weiterzubearbeiten und somit die Situation zu verschlimmern. Des Weiteren erhält man einen Hinweis darauf, ob ein Programm die Datei (heimlich) verändert hat. Abschließend kann man mit Checkit auch noch leicht feststellen, ob die Kopie einer Datei ordnungsgemäß im Zielverzeichnis angekommen ist.

Checkit erstellt für jede Datei einen digitalen Fingerabdruck, die sogenannte Checksumme. Diese tackert es standardmäßig als Attribut an die Datei. Das hat den Vorteil, dass die Checksumme auch beim Kopieren der Datei erhalten bleibt. Allerdings muss das Dateisystem dieses Vorgehen unterstützen. Bei der unter Linux überwiegend zum Einsatz kommenden Ext-Familie ist dies der Fall.

Um Checkit in Betrieb zu nehmen, installiert man zunächst den C-Compiler, make, aclocal aus dem Automake-Paket und das Entwicklerpaket zu libattr. Unter Ubuntu führt die folgende Anweisung in einem Terminal zum Ziel:

sudo apt-get install build-essential make automake libattr1-dev

Anschließend schnappt man sich von der Checkit-Homepage die aktuelle Version und entpackt das dabei erhaltene Archiv auf der Festplatte. Das Programm übersetzt und installiert man mit dem bekannten Dreisatz:

./configure
make
make install

Jetzt muss man einmal für die (wichtigen) Dateien den digitalen Fingerabdruck berechnen und anheften lassen. Für die Datei bild1.png erledigt das in einem Terminal der Befehl:

checkit -s -o bild1.png

Der Parameter -s erzeugt eine Checksumme und heftet sie an die Datei. Sollte bereits eine solche Checksumme an der Datei kleben, wird sie überschrieben – dies erlaubt man mit dem Parameter -o.

Um gleich alle Dateien in sämtlichen Unterverzeichnissen des Ordners fotos mit einem Fingerabdruck zu bestücken, hängt man noch ein -r an:

checkit -s -o -r fotos/

Jetzt kann man jederzeit prüfen, ob sich die Dateien verändert haben:

checkit -c -r fotos/

Checkit durchläuft jetzt alle Dateien im Verzeichnis fotos und gibt für jede Datei das Prüfergebnis aus.

Hier schlug die Prüfung von Checkit bei der Datei bild3.png fehl.

Kommentare
debsums
N/A (unangemeldet), Donnerstag, 08. Mai 2014 00:41:30
Ein/Ausklappen

debsums macht was ähnliches für Softwarepakete


Bewertung: 247 Punkte bei 222 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: debsums
mike (unangemeldet), Dienstag, 15. Dezember 2015 13:46:17
Ein/Ausklappen

Damit auch größere Dateien >2,4GB (2^31-1) bearbeitet werden muß vor dem #include <sys/stat.h> die Anweisung
#define _FILE_OFFSET_BITS 64
eingefügt werden.


Bewertung: 177 Punkte bei 119 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Aktuelle Fragen

Samsung VG-KBD1500 - Bluetooth-Tastatur mit Touchpad mit Xubuntu 16.04.2 LTS
Linux- & BSD-UserGroup im Weserbergland, 16.08.2017 19:16, 0 Antworten
Bin grad mit "meinem Latein am Ende" darum hier mal so in den Raum geworfen. Samsung VG-KBD1500 -...
Tails verbindet nicht mit WLan
Georg Vogel, 30.07.2017 15:06, 5 Antworten
Hallo zusammen! Habe mir von Linux Mint aus einen Tails USB-Stick erstellt. Läuft soweit gut,...
Genivi for Raspberry Pi 3
Sebastian Ortmanns, 28.07.2017 10:37, 1 Antworten
I try to build a Genivi Development Platform for Rasberry Pi 3. But I always get the failures bel...
Bash awk Verständnis-Frage
Josef Federl, 22.07.2017 17:46, 2 Antworten
#!/bin/bash # Skriptdateiname = test.sh spaltennummer=10 wert=zehner awk '{ $'$spaltennummer'...
Bash - verschachtelte Variablenersetzung, das geht doch eleganter als meine Lösung?
Josef Federl, 18.07.2017 20:24, 3 Antworten
#!/bin/bash #Ziel des Skriptes wird sein die ID zu extrahieren hier nur als Consolentest: root@...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] bash Leerzeichen vor dem Curser
Uwe Herrmuth, 16.08.2017 21:56
Hallo Volker, Volker Borst schrieb am 16.08.2017 um 19:22: > > echo $PS1 > > ${debian_chr...
Re: [EasyLinux-Ubuntu] bash Leerzeichen vor dem Curser
Volker Borst, 16.08.2017 19:22
Hallo Uwe, > echo $PS1 ${debian_chroot:+($debian_chroot)}\u@\h:\w\$ Einen neuen Benutzer habe ich jet...
Re: [EasyLinux-Ubuntu] bash Leerzeichen vor dem Curser
Uwe Herrmuth, 16.08.2017 07:58
Hallo Volker, Volker schrieb am 12.08.2017 um 12:11: > Nach dem Aufrufen von 16.04 habe ich in der bash...
Re: [EasyLinux-Ubuntu] Internet Geschwindigkeit
Udo Teichmann, 14.08.2017 15:44
Am Sonntag, den 13.08.2017, 07:16 +0200 schrieb Alfred Zahlten: Hallo Alfred > > https://www.d...
Re: [EasyLinux-Ubuntu] Internet Geschwindigkeit
Alfred Zahlten, 13.08.2017 07:16
Am 12.08.2017 um 18:47 schrieb Udo Teichmann:> Am Samstag, den 12.08.2017, 08:47 +0200 schrieb Rainer: G...