shred
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Hinweis:
Dieser Artikel beschreibt die alte Implementation des Programms. Ab Ubuntu 24.04 ist auch mit Paket rust-coreutils 🇬🇧 eine neue Implementierung in der Programmiersprache Rust für Ubuntu verfügbar, und ab Ubuntu Version 25.10 wird die Implementierung in Rust als Standard bevorzugt.
Die Implementierung in Rust strebt Funktionsgleichheit mit der alten Implementierung an. Es können aber kleine Abweichungen auftreten. Dies bedeutet, dass das hier Beschriebene von der am eigenen Rechner vorgefundenen Situation abweichen kann.
Artikel für fortgeschrittene Anwender
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
shred überschreibt Dateien oder Device-Files (z.B.: Partitionen) und löscht sie danach, wenn gewünscht. Im Gegensatz zu Dateien, die mit rm gelöscht wurden, können Dateien, die mit shred überschrieben und gelöscht worden sind, selbst mit forensischen Mitteln nicht mehr wiederhergestellt werden. Shred arbeitet dabei nach der Gutmann-Methode.
Achtung!
Um zu erfahren, ob das Löschen der Dateien bei einem überhaupt verlässlich funktioniert, sollte man unbedingt die Hinweisbox im Artikel Daten sicher löschen lesen!
Unabhängig vom verwendeten Dateisystem besteht aber auch die Gefahr, dass zu löschenden Dateien temporär zwischengespeichert wurden und somit nicht so einfach überschrieben werden können.
Installation¶
Bis Ubuntu 25.04 ist das Programm im essentiellen Paket coreutils enthalten und deshalb auf jedem System installiert. Diese Variante beruht auf den altbekannten GNU Core Utilities.
Ab 25.10 ist das Paket coreutils 🇬🇧 jedoch ein Metapaket, welches alternativ durch gnu-coreutils 🇬🇧 oder rust-coreutils 🇬🇧 oder weitere befriedigt werden kann.
Bei 25.10 und 26.04 installiert das Paket coreutils-from-uutils 🇬🇧 beide vorstehend genannten Pakete und aktiviert die rust-coreutils als Vorgabe. Siehe Artikel rust-coreutils zur Umstellung auf die GNU-Utilities.
Ab 26.10 soll aber coreutils-from-uutils nur noch die rust-coreutils installieren. Wer dann die alten gnu-coreutils verwenden will, muss coreutils-from-gnu 🇬🇧 manuell installieren.
Dateien löschen¶
Einzeln¶
Einzelne Dateien werden mit folgendem Befehl überschrieben und gelöscht [1]:
shred -fuz DATEI
Verzeichnisinhalte¶
Sollen alle Dateien in einem Verzeichnis und dessen Unterverzeichnissen gelöscht werden, wird folgender Befehl benötigt [1]:
find <Verzeichnis> -type f -print0 | xargs -0 shred -fuz
Die Verzeichnisstruktur bleibt erhalten und muss mit rm entfernt werden.
Partitionen/Geräte überschreiben¶
Mit shred kann man nicht nur einzelne Dateien, sondern auch Blockdevices wie z.B. Partitionen oder ganze Festplatten überschreiben. Möchte man nur eine einzelne Partition überschreiben, so ist in den folgenden Befehlen für <Gerät> das entsprechende Gerät mit Nummer der Partition, z.B. /dev/sda5, anzugeben. Gibt man nur /dev/sda an, so werden alle Partitionen auf der entsprechenden Festplatte gelöscht. Die jeweilige Gerätenummer kann über die Laufwerksverwaltung ausgelesen werden.
Achtung!
Sollen Dateisysteme überschrieben werden – also Geräte, Partitionen oder Imagedateien – so ist es außerordentlich wichtig, dass diese zu diesem Zeitpunkt nicht eingebunden sind. Ansonsten können Daten erhalten bleiben. shred warnt nicht vor diesem Umstand.
Mit Zufallszahlen¶
Ein Blockgerät in einem Durchgang mit Zufallsdaten zu überschreiben geschieht mit folgendem Befehl [1]:
sudo shred -vn 1 <Gerät>
Die Option -v ist dabei optional und dient nur der Fortschrittsanzeige.
Mit Nullen¶
Eigentlich ist shred nur für Zufallsdaten gedacht. Mit 0 Durchgängen und der Option -z kann man auch einmal alles mit Nullen überschreiben [1]:
sudo shred -v -n 0 -z <Gerät>
Hinweis:
shred erzeugt Zufallsdaten so schnell, daß das Schreiben mit Nullen keinen Performanzvorteil bietet.
Wenn Nullen gewünscht sind, bietet pv eine viel schönere Fortschrittsanzeige.
Optionen¶
| Optionen | |
| Parameter | Beschreibung |
-f | Erzwinge das Überschreiben. Setzt die Dateirechte automatisch neu, wenn dies zum Überschreiben notwendig ist. |
-n N | Überschreibe die Datei N mal (Standard ist 3) |
-s N | Überschreibe die Datei mit N Bytes. Suffixe K, M und G (für Kilo, Mega und Gigabyte) sind erlaubt. |
-u | Entferne Datei nach dem Überschreiben |
-v | Zeige den Fortschritt während des Schreddern |
-x | Runde die Dateigrößen nicht bis zum nächsten Block auf |
-z | Überschreibt die Datei am Ende nochmal nur mit Nullen, um das vorangegangene Schreddern zu verschleiern |
Links¶
Sicheres Löschen: Einmal überschreiben genügt 🇩🇪 - heise News, 01/2009
Secure Deletion of Data from Magnetic and Solid-State Memory 🇬🇧 - Peter Gutmann
Daten sicher löschen Übersichtsartikel