Linux / Befehl shred: Dateidaten überschreiben und ihre Grenzen verstehen
shred überschreibt Dateidaten, garantiert aber keine vollständige Löschung aller Kopien. SSDs, Copy-on-Write-Dateisysteme, Snapshots und Backups können frühere Daten behalten; die Speichertechnik bestimmt, ob das Verfahren geeignet ist.
Die Beispiele verwenden das Verhalten von GNU Coreutils. Prüfen Sie shred --help, man shred und die Dokumentation Ihrer Distribution, wenn Portabilität oder eine versionsspezifische Option wichtig ist.
Ergänzende Befehle und Anwendungsfälle finden Sie in Wesentliche Linux-Befehle: Eine praktische Referenz nach Aufgaben.
Was ist der Befehl shred?
shred schreibt wiederholt Muster über eine Datei oder ein Gerät, um vorherige Daten schwerer wiederherstellbar zu machen. Seine Annahmen gelten nicht zuverlässig für SSDs, Copy-on-Write-Dateisysteme, Snapshots, Backups, RAID-Ebenen oder Speicher, der Blöcke umlegt, daher kann er nicht das Entfernen jeder Kopie versprechen.
Grundlegende Syntax
shred [OPTION]... FILE...
Setzen Sie Anführungszeichen um Pfade, die Leerzeichen enthalten. Wenn unterstützt, setzen Sie -- vor Operanden, die mit einem Bindestrich beginnen, damit sie nicht als Optionen interpretiert werden.
Grundlegende Nutzung von shred
Eine Datei überschreiben
Die Standardoperation überschreibt Daten, belässt jedoch den Verzeichniseintrag. Testen Sie das Verhalten an entbehrlichen Testdaten, bevor Sie es auf einem wichtigen Pfad verwenden.
shred secret.txt
Datei überschreiben und entfernen
Fügen Sie -u hinzu, um die Datei nach erfolgreichem Überschreiben zu entfernen. Dies löscht jedoch immer noch nicht Kopien in anderen Speicherschichten.
shred -u secret.txt
Fortschritt anzeigen
Verwenden Sie -v für Fortschrittsinformationen beim Verarbeiten einer großen Datei oder eines sorgfältig identifizierten Geräts.
shred -v -n 3 disk-image.raw
Abschlussmeldung und tatsächliche Löschgarantie unterscheiden
shred zeigt den Fortschritt abhängig von den Optionen, aber ein Beenden ohne Fehler garantiert nicht, dass alle Kopien auf physischen Speichermedien gelöscht wurden. Das Folgende gilt nur für direkt erstellte Testdateien.
printf 'demo\n' > disposable-demo.txt shred -u disposable-demo.txt test ! -e disposable-demo.txt echo $?
Beispielausgabe 0 bestätigt nur, dass der Dateiname verschwunden ist. Daten, die auf SSDs, Snapshots, Journaling-Dateisystemen oder in Backups verbleiben, müssen separat betrachtet werden.
Wichtige Optionen
| Option | Zweck |
|---|---|
-n N |
Legt die Anzahl der Durchgänge mit Zufallsdaten fest. |
-u |
Datei nach dem Überschreiben entfernen. |
-z |
Einen abschließenden Durchgang mit Nullen hinzufügen. |
-v |
Fortschritt melden. |
-s SIZE |
Nur die angegebene Byteanzahl überschreiben. |
-x |
Die Datei nicht auf einen vollständigen Block aufrunden. |
-f |
Ändern Sie die Berechtigungen bei Bedarf, um das Schreiben zuzulassen. |
--random-source=FILE |
Wählen Sie die Quelle für zufällige Bytes. |
Lange Optionen machen überprüfte Skripte oft leichter verständlich. Wenn ein Skript auf Nicht-GNU-Systemen laufen muss, überprüfen Sie jede nicht-POSIX-Option auf der Zielplattform.
Praktische Beispiele
Verwenden Sie eine begrenzte Anzahl von Durchläufen
Mehr Durchläufe erhöhen die Zeit, aber das Verhalten moderner Speichergeräte ist wichtiger als eine hohe Anzahl an Durchläufen. Definieren Sie das Speichermodell und die Bedrohung, bevor Sie dieses Werkzeug wählen.
shred -v -n 1 -z -u confidential.bin
Identifizieren Sie zuerst ein Blockgerät
Ein falscher Gerätepfad kann eine andere Festplatte zerstören. Hängen Sie das Zielgerät aus und bestätigen Sie Größe, Modell, Seriennummer und Mount-Beziehungen mit mehr als einer Überprüfung.
lsblk -o NAME,SIZE,MODEL,SERIAL,FSTYPE,MOUNTPOINTS findmnt
Erwägen Sie eine kryptographische Löschung
Wenn von Anfang an eine Vollplattenverschlüsselung verwendet wurde, kann das sichere Vernichten des Verschlüsselungsschlüssels eine wichtige Entsorgungsmethode sein. Berücksichtigen Sie auch die sichere Löschung durch den Anbieter, organisatorische Richtlinien und Anforderungen an die physische Zerstörung.
cryptsetup status encrypted-volume
shred und verwandte Befehle
| Befehl oder Methode | Hauptrolle | Geeignet für |
|---|---|---|
rm |
Eine Datei entfernen und Speicherplatz freigeben | Normales Löschen |
shred |
Versuch, wiederholt in dieselben logischen Daten zu schreiben | Begrenzte kompatible Speicherfälle |
| Gerätesichere Löschung | Verwenden Sie Firmware-Ebene Löschung oder Schlüsselvernichtung | Unterstützte SSD- oder NVMe-Entsorgung |
| Physische Zerstörung | Das Speichermedium zerstören | Hochsichere regulierte Entsorgung |
Wichtige Hinweise
SSD-Schreibvorgänge können unterschiedliche physische Zellen erreichen
Wear-Leveling und Ersatzblöcke bedeuten, dass das Überschreiben einer logischen Adresse die Zelle, die die alten Daten enthielt, möglicherweise nicht überschreibt.
Andere Dateisystemkopien können verbleiben
Journale, Snapshots, Copy-on-Write-Bereiche, RAID, Synchronisierung und Backups können Daten über die benannte Datei hinaus behalten.
Ein Fehler im Gerätepfad ist zerstörerisch
Das Zerstören eines Blockgeräts kann ein gesamtes Dateisystem löschen. Bestätigen Sie Identität, Mount-Status, Backups und Berechtigungen, bevor Sie fortfahren.
FAQ
Garantiert shred -u, dass eine Wiederherstellung unmöglich ist?
Nein. Speicher-Neuabbildung, Dateisysteme, Snapshots und Backups können andere Kopien behalten.
Sollte ich einzelne Dateien auf einer SSD mit shred löschen?
Einzelne Überschreibungen sind unzuverlässig aufgrund von Wear-Leveling. Bevorzugen Sie Verschlüsselung und ein unterstütztes Verfahren zur Gerätesäuberung.
Macht -z das Löschen sicherer?
Es fügt einen letzten Null-Durchgang hinzu, entfernt jedoch keine Kopien an anderen Stellen oder garantiert die Säuberung.
Sollte normale Löschung rm oder shred verwenden?
Verwenden Sie rm für normale Löschung. Verwenden Sie shred nur nach Bewertung der Speichertechnologie und des Bedrohungsmodells.
Weitere Angaben zu Syntax, Implementierung und Verfügbarkeit finden Sie unter GNU Coreutils shred Dokumentation und GNU Coreutils-Handbuch.




