Shred-Dokumentation sagt Shred ist "nicht garantiert, um effektiv zu sein" (Siehe unten). Also, wenn ich ein Dokument auf meinem Ext3-Dateisystem oder auf einem Raid shredde, was passiert? Schneide ich Teile der Datei? Zerbricht es manchmal die ganze Sache und manchmal nicht? Kann es andere Sachen zerstören? Kopiert es nur den Dateikopf?
ACHTUNG: Beachten Sie, dass shred auf einer sehr wichtigen Annahme beruht: dass das Dateisystem Daten an Ort und Stelle überschreibt. Dies ist das traditionelle Art, Dinge zu tun, aber viele moderne Dateisystem-Designs erfüllen diese Annahme nicht. Im Folgenden finden Sie Beispiele für Dateien Systeme, auf denen shred nicht wirksam ist oder nicht garantiert ist effektiv in allen Dateisystemmodi:
Log-strukturierte oder journalisierte Dateisysteme, z. B. solche, die mit AIX und Solaris (und JFS, ReiserFS, XFS, Ext3 usw.) geliefert werden.
Dateisysteme, die redundante Daten schreiben und selbst dann weiterlaufen, wenn einige Schreibvorgänge fehlschlagen, z. B. RAID-basierte Dateisysteme
Dateisysteme, die Snapshots erstellen, wie der NFS-Server der Netzwerkanwendung
Dateisysteme, die an temporären Speicherorten zwischenspeichern, z. B. NFS-Clients der Version 3
komprimierte Dateisysteme
Bei ext3-Dateisystemen gilt der vorstehende Haftungsausschluss (und Shred ist somit von begrenzter Wirksamkeit) nur in data = journal Modus, der Dateidaten zusätzlich zu nur Metadaten erfasst. Im Sowohl die Daten = geordnet (Standard) und Daten = Writeback-Modi, shred funktioniert wie immer. Ext3-Journaling-Modi können durch Hinzufügen geändert werden Die Option data = something für die Mount-Optionen für a bestimmten Dateisystem in der Datei / etc / fstab, wie in mount man page (man mount).
Alle Shred-Vorgänge werden überschrieben, gelöscht, der Erfolg wird geprüft und wiederholt. Es ist absolut nichts, um herauszufinden, ob das Überschreiben einer Datei tatsächlich dazu führt, dass die Blöcke überschrieben werden, die die ursprünglichen Daten enthalten. Dies liegt daran, dass, ohne nicht-standardmäßige Dinge über das zugrunde liegende Dateisystem zu wissen, dies nicht möglich ist.
Journaling-Dateisysteme überschreiben also die ursprünglichen Blöcke nicht, da dies dazu führen würde, dass sie fehlerfrei von Fehlern, bei denen die Änderung zur Hälfte geschrieben wurde, wiederhergestellt werden. Wenn Daten aufgezeichnet werden, wird jeder Shred-Durchlauf möglicherweise an einen neuen Speicherort auf der Festplatte geschrieben. In diesem Fall wird nichts geschreddert.
RAID-Dateisysteme (abhängig vom RAID-Modus) überschreiben möglicherweise nicht alle Kopien der ursprünglichen Blöcke. Wenn es Redundanz gibt, können Sie eine Festplatte, aber nicht die andere (n) shreddern, oder Sie können feststellen, dass verschiedene Durchgänge unterschiedliche Festplatten betroffen haben, so dass jede Festplatte teilweise geschreddert wird.
In jedem Dateisystem kann die Festplatten-Hardware selbst so einen Fehler entdecken (oder, im Fall von Flash, Wear-Leveling auch ohne einen Fehler anwenden) und den logischen Block auf einen anderen physischen Block neu zuordnen, so dass das Original wird als fehlerhaft (oder unbenutzt) markiert, aber nie überschrieben.
Komprimierte Dateisysteme überschreiben möglicherweise nicht die ursprünglichen Blöcke, da die Daten, mit denen shred überschreibt, bei jedem Durchlauf entweder zufällig oder extrem komprimierbar sind, und beide könnten dazu führen, dass die Datei ihre komprimierte Größe radikal ändert und daher verschoben wird. NTFS speichert kleine Dateien in der MFT, und wenn Shred die Dateigröße auf ein Vielfaches von einem Block aufrundet, wird das erste "Überschreiben" typischerweise dazu führen, dass die Datei an einen neuen Ort verschoben wird, der dann sinnlos zerfetzt wird MFT-Steckplatz unberührt.
Shred kann keine dieser Bedingungen erkennen (es sei denn, Sie haben eine spezielle Implementierung, die Ihren fs- und Blocktreiber direkt adressiert - ich weiß nicht, ob solche Dinge tatsächlich existieren). Deshalb ist es zuverlässiger, wenn es auf einer ganzen Festplatte als auf einem Dateisystem verwendet wird.
Shred vernichtet niemals "andere Sachen" im Sinne anderer Dateien. In einigen der obigen Fälle werden zuvor nicht zugewiesene Blöcke anstelle der Blöcke, die Ihre Daten enthalten, gelöscht. Es zerkleinert auch keine Metadaten im Dateisystem (was ich unter "Datei-Header" verstehe). Die Option -u versucht, den Dateinamen zu überschreiben, indem sie in einen neuen Namen derselben Länge umbenannt wird und dann jeweils das eine Zeichen auf 1 Zeichen verkürzt, bevor die Datei gelöscht wird. Sie können dies in Aktion sehen, wenn Sie -v ebenfalls angeben.
Die anderen Antworten haben bereits eine gute Erklärung dafür geliefert, warum Shred möglicherweise nicht in der Lage ist, seine Arbeit richtig zu machen.
Dies kann wie folgt zusammengefasst werden:
shred funktioniert nur auf Partitionen, nicht auf einzelnen Dateien
Wie in den anderen Antworten erklärt, wenn Sie eine einzelne Datei shredden:
Aber selbst wenn Sie wissen, dass Ihr Dateisystem die oben genannten unangenehmen Dinge nicht tut, müssen Sie auch bedenken, dass viele Anwendungen automatisch Kopien von Dateidaten erstellen:
Also, kurz nachdem Sie jede einzelne Binärdatei überprüft haben, die Sie verwenden, um mit Ihren Daten zu arbeiten, könnte es rechts, links & amp; zentrieren, ohne dass du es weißt. Der einzige realistische Weg besteht darin, immer komplette Partitionen (oder Festplatten) zu shredden.
Das Problem besteht darin, dass Daten möglicherweise an mehreren Stellen auf der Festplatte vorhanden sind. Wenn die Daten an genau einem Ort existieren, kann shred diese Information deterministisch "löschen". Dateisysteme, die Journal oder andere erweiterte Dateisysteme verwenden, schreiben die Daten Ihrer Datei jedoch möglicherweise zeitweise auf mehrere Speicherorte auf der Festplatte. Shred - nach der Tatsache - hat keine Möglichkeit, darüber zu wissen und hat keine Möglichkeit zu wissen, wo die Daten vorübergehend auf die Festplatte geschrieben wurden. Daher hat es keine Möglichkeit, diese Plattensektoren zu löschen oder zu überschreiben.
Stellen Sie sich Folgendes vor: Sie schreiben eine Datei auf ein aufgezeichnetes Dateisystem, das nicht nur Metadaten, sondern auch die Dateidaten erfasst. Die Dateidaten werden vorübergehend in das Journal geschrieben und dann an ihren endgültigen Speicherort geschrieben. Jetzt verwenden Sie Shred für die Datei. Der endgültige Ort, an dem die Daten geschrieben wurden, kann sicher mit Shred überschrieben werden. Allerdings müsste Shred etwas garantieren, dass die Sektoren in dem Journal, die vorübergehend den Inhalt Ihrer Datei enthielten, ebenfalls überschrieben werden, um versprechen zu können, dass Ihre Datei wirklich nicht wiederherstellbar ist. Stellen Sie sich ein Dateisystem vor, in dem das Journal nicht einmal an einem festen Ort oder von fester Länge ist.
Wenn Sie shred verwenden, versuchen Sie sicherzustellen, dass Ihre Daten nicht rekonstruiert werden können. Die Autoren von Shred sind ehrlich, dass es einige Bedingungen außerhalb ihrer Kontrolle gibt, wo sie diese Garantie nicht übernehmen können.
Tags und Links linux filesystems shred journal