Der Befehl shred

shred-featured

In diesem Beitrag lernen Sie den Befehl shred kennen, welcher Ihnen das sichere Überschreiben und anschließende Löschen von Dateien oder Device-Files unter Linux-/UNIX-Betriebssystemen ermöglicht.

shred unterscheidet sich insofern von dem Befehl rm, dass gelöschte Daten selbst mit forensischen Mitteln sehr schwer bzw. nicht mehr wiederherstellbar sind. Dies wird durch mehrfaches Überschreiben der Daten mit Zufallswerten oder Bitmustern erreicht. Der Befehl arbeitet dabei nach der sogenannten Gutmann-Methode.

Installation

Da shred im Paket coreutils enthalten ist, muss es meist nicht nachinstalliert werden. Ist das Paket jedoch nicht installiert dann können Sie dies über den folgenden Befehl tun:

apt-get install coreutils

Überschreiben / Löschen von Dateien

Um einzelne Dateien zu Überschreiben lässt sich shred mit der folgenden Syntax aufrufen:

shred [Optionen] [Datei(en)]

Zum Überschreiben mehrerer Dateien ist hierbei die Angabe mehrerer durch Leerzeichen getrennter Dateinamen erlaubt. Wird als Datei-Angabe "-" verwendet, so überschreibt shred die Standardausgabe.

Beispiel: Einzelne Datei überschreiben

Die Datei "profi-tutorials-themen.txt" des aktuellen Verzeichnisses soll hier überschrieben werden.

Inhalt Datei:

linux
e-business
it-consulting
foto

Eingabe:

shred profi-tutorials-themen.txt

Inhalt der Datei nach Abschluss:

Die Datei "profi-tutorials-themen.txt" ist nach Ausführung des Befehls noch immer vorhanden. Wie unterhalb zu sehen, wurde der Inhalt der Datei lediglich mit Zufallswerten überschrieben.

shred-einzeln-ausgabe
Beispiel: Mehrere Dateien überschreiben

Eingabe:

shred der-befehl-shred.txt der-befehl-wget.txt linux-befehle-pdf.txt

Bedeutung:

Hierbei werden die drei Dateien "der-befehl-shred.txt", "der-befehl-wget.txt" und "linux-befehle-pdf.txt" überschrieben. Analog zum obigen Beispiel müssen sie zur Freigabe des Speichers noch gelöscht werden.

Beispiel: Standardausgabe überschreiben

Eingabe:

shred -

Bedeutung:

In diesem Fall überschreibt shred die Standardausgabe.

Die Option -u

Zu beachten ist, dass shred die angegebenen Dateien bei der Verwendung ohne jegliche Optionen lediglich überschreibt, nicht jedoch löscht. Wenn Sie die Dateien nach dem Überschreiben auch Löschen möchten, um den entsprechenden Speicher freizugeben, verwenden Sie zusätzlich die Option -u:

shred -u [Datei(en)]
Beispiel: Datei überschreiben und löschen

Eingabe:

shred -u 20-linux-befehle.txt

Bedeutung:

Die Datei "20-linux-befehle.txt" des aktuellen Verzeichnisses wird überschrieben und anschließend  gelöscht, sodass der belegte Speicher freigegeben wird.

Überschreiben von Geräten

Neben dem Überschreiben von Dateien unterstützt shred auch das Überschreiben ganzer Blockdevices, wie beispielsweise Partitionen oder ganze Festplatten. Die zu verwendende Syntax lautet folgendermaßen:

shred [Optionen] [Gerät]
Beispiel: Partition löschen

Eingabe:

shred /dev/sda2

Bedeutung:

Alle Daten auf der Partition /dev/sda2 werden überschrieben.

Weitere wichtige Funktionen / Optionen

-f - Überschreiben erzwingen

Mit der Option -f (force) ist es möglich, den Vorgang des Überschreibens zu erzwingen. Falls dazu andere Zugriffsberechtigungen nötig sind, werden diese automatisch entsprechend geändert.

shred -f [Datei]

-n - Anzahl Durchläufe festlegen

Die Option -n (number of iterations) ermöglicht es Ihnen auszuwählen, wie oft shred die gewählten Daten überschreiben soll. Der Standardwert, welcher bei Auslassen des Parameters verwendet wird, ist 3.

shred -n [N] [Datei]

-s - Feste Anzahl Bytes überschreiben

-s (size) ermöglicht Ihnen das Überschreiben einer festen Anzahl Bytes. Suffixe, wie beispielsweise K, G oder M, sind dabei zulässig.

shred -s [Bytes] [Datei]
Beispiel: Feste Anzahl Bytes überschreiben

Genau die ersten 10 Bytes der Datei "profi-tutorials-themen.txt" des aktuellen Verzeichnisses sollen hier überschrieben werden.

Inhalt Datei:

linux
e-business
it-consulting
foto

Eingabe:

shred -s 10 profi-tutorials-themen.txt

Inhalt der Datei nach Abschluss:

Im Inhalt der Datei ist zu erkennen, dass genau die ersten 10 Bytes mit Zufallswerten überschrieben wurden. Ein Teil der Datei ist noch erhalten geblieben.

shred-option-s-ausgabe

-v - Fortschritt anzeigen

Mit der verbose-Option -v können Sie den Fortschritt des shred-Befehls einsehen:

shred -v [Datei]
Beispiel: Fortschritt anzeigen

Hierbei soll während der Durchführung des shred-Befehls auch der Fortschritt angezeigt werden.

Eingabe:

shred -v 20-linux-befehle.txt

Ausgabe:

Während der Ausführung wird nun der Fortschritt im Terminal ausgegeben. Nach Abschluss des standardmäßigen dreifachen Überschreibens ist die folgende Ausgabe im Terminal zu sehen:

shred-fortschritt-ausgabe

-x - Aufrunden verhindern

Bei Verwendung der Option -x (exact) werden Dateigrößen nicht auf den nächsten vollen Block aufgerundet. Für nicht-reguläre Dateien, wie beispielsweise Gerätenamen, ist dies die Voreinstellung.

shred -x [Datei]
Beispiel: Aufrunden verhindern

In diesem Beispiel soll einmal der Unterschied zwischen der Verwendung der Option -x und dem Auslassen der Option dargestellt werden. Dazu wird shred zunächst ohne die Option ausgeführt. Die Datei "profi-tutorials-themen.txt" hat vor Ausführung eine Kapazität von 36 Bytes.

Inhalt Datei:

linux
e-business
it-consulting
foto

Eingabe:

shred profi-tutorials-themen.txt

Kapazität der Datei nach Abschluss:

Die Datei hat nach Abschluss der Ausführung eine Kapazität von 4096 Bytes. Dies entspricht der Blockgröße des Dateisystems.

shred-option-x-beispiel-1

Im Folgenden wird der Befehl zusammen mit der Option -x verwendet. Der Inhalt der Datei "profi-tutorials-themen.txt" wurde zuvor wiederhergestellt.

Eingabe:

shred -x profi-tutorials-themen.txt

Kapazität der Datei nach Abschluss:

Die Datei hat nach Abschluss der Ausführung noch immer die Kapazität von 36 Bytes. Die Option -x hat somit das Aufrunden auf den nächsten vollen Block verhindert.

shred-option-x-beispiel-2

-z - Mit Nullen überschreiben

Wenn Sie zum Ende des Überschreibens noch einen finalen Durchlauf durchführen wollen, welcher die Daten mit Nullen überschreibt, verwenden Sie die Option -z (zero). Dies hilft dabei, das Überschreiben zu verbergen.

shred -z [Datei]

Wichtige Hinweise

Überschreiben von Dateisystemen

Bei der Verwendung von shred zum Überschreiben von Dateisystemen ist es wichtig zu beachten, dass dieses zum Zeitpunkt des Überschreibens nicht eingebunden ist, um die vollständige und rückstandslose Entfernung von Daten zu gewährleisten.

Überschreiben an derselben Stelle

Es gilt zu beachten, dass Die Funktion von shred auf der Annahme beruht, dass das Dateisystem Daten an derselben Stelle überschreibt. Zwar ist dies die traditionelle Vorgehensweise, jedoch erfüllen viele moderne Betriebssysteme diese Annahme nicht.

Im Folgenden seien einige Dateisysteme genannt, auf welchen shred nicht effektiv arbeiten bzw. nicht für alle Dateisystem-Modi eine Wirkung garantiert werden kann:

  • Protokollstrukturierte Dateisysteme und Journalling-Dateisysteme (z.B. von AIX / Solaris und Dateisysteme wie JFS, ReiserFS, XFS, Ext3 etc.) 
  • Dateisysteme, welche redundante Daten schreiben und auch nach fehlgeschlagenen Schreibvorgängen fortfahren (z.B. RAID-basierte-Dateisysteme)
  • Dateisysteme, die Schnappschüsse erzeugen (z.B. NFS-Server von Network-Appliance)
  • Dateisysteme, welche an temporären Orten zwischenspeichern (z.B. NFS Version 3 Clients)
  • komprimierte Dateisysteme

Abonniere JETZT unseren Newsletter!


Verpasse nie wieder neue Beiträge und exklusive Insider-Only-Inhalte!

Joel Benseler

Click Here to Leave a Comment Below

Leave a Comment: