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.