Antworten:
Verwenden Sie den find
Befehl, um shred
rekursiv auszuführen :
find <dir> -type f -exec shred {} \;
man shred
.
srm
von @ Cookies Antwort wird zumindest versucht, dieses Problem zu lösen).
-exec shred {} +
Sie diese Option , um den Vorgang zu beschleunigen, da shred mehrere Argumente akzeptiert.
Vorsicht vor Fetzen!
Aus der Shred-Manpage:
VORSICHT: Beachten Sie, dass Shred von einer sehr wichtigen Annahme abhängt: Das Dateisystem überschreibt die vorhandenen Daten. Dies ist die traditionelle Vorgehensweise, aber viele moderne Dateisystemdesigns erfüllen diese Annahme nicht. Im Folgenden sind Beispiele für Dateisysteme aufgeführt, auf denen shred nicht oder nicht in allen Dateisystemmodi wirksam ist:
Dateisysteme mit Protokollstruktur oder Journaled File Systems, wie sie mit AIX und Solaris (und JFS, ReiserFS, XFS, Ext3 usw.) geliefert werden
Dateisysteme, die redundante Daten schreiben und auch dann weiterarbeiten, wenn einige Schreibvorgänge fehlschlagen, z. B. RAID-basierte Dateisysteme
Dateisysteme, die Snapshots erstellen, z. B. der NFS-Server von Network Appliance
Dateisysteme, die an temporären Speicherorten zwischengespeichert werden, z. B. NFS-Clients der Version 3
komprimierte Dateisysteme
Im Fall von ext3-Dateisystemen gilt der oben genannte Haftungsausschluss (und Shred ist daher von begrenzter Wirksamkeit) nur im data = journal-Modus, bei dem zusätzlich zu den Metadaten auch Dateidaten aufgezeichnet werden. Sowohl in den Modi data = ordered (Standard) als auch data = writeback funktioniert shred wie gewohnt. Ext3-Journal-Modi können geändert werden, indem die Option data = something zu den Mount-Optionen für ein bestimmtes Dateisystem in der Datei / etc / fstab hinzugefügt wird, wie in der Mount-Manpage (man mount) dokumentiert.
Darüber hinaus können Dateisystemsicherungen und Remotespiegel Kopien der Datei enthalten, die nicht entfernt werden können und die eine spätere Wiederherstellung einer geschredderten Datei ermöglichen.
Lösung: Verwenden Sie ein verschlüsseltes Dateisystem und löschen Sie einfach Ihre Dateien.
shred
als auch die Datenverschlüsselung verhindern das Lesen der Daten von einem Offline-Speichergerät (z. B. Diebstahl oder Polizei). Die Datenverschlüsselung bietet den zusätzlichen Vorteil, dass alle Dateien geschützt werden, nicht nur die (ordnungsgemäß) gelöschten. Sobald das Dateisystem gemountet ist, haben wir in beiden Fällen wieder die alten Unix-Berechtigungen, und der Datenschutz wird wieder zu einer Aufgabe der Betriebssystemsicherheit und der ordnungsgemäßen Systemadministration. Upfront-Dateisystemverschlüsselung ist beim Schutz von Daten in Ruhe definitiv nicht schlechter als die strategische Nutzung von shred
!
Verwenden Sie stattdessen sicheres Löschen.
sudo apt-get install secure-delete
srm -r pathname
Getan. Sicheres Löschen ist viel paranoider als Shred. Verwenden Sie statt 3 38 Durchgänge. Verwenden Sie für einen schnellen Durchgang
srm -rfll pathname
Mit fll erhalten Sie einen weniger zufälligen Datengenerator und nur einen einzigen Durchgang.
find
Methoden hat, die versuchen, gespeicherte Dateinamen zu löschen, indem sie Dateien umbenennen, bevor sie abgeschnitten und die Verknüpfung aufgehoben werden.
Kombinieren Sie diese Antwort mit den bekanntesten Shred-Optionen, indem Sie diesen Stapelüberlauflink " Dateien dauerhaft und sicher unter CentOS löschen " verwenden:
find <directory> -depth -type f -exec shred -v -n 1 -z -u {} \;
Bearbeiten: Beachten Sie, dass die beste Antwort für das Shreddern einer einzelnen Datei eine Synchronisierung erzwingt, bei der Änderungen auf das Medium geschrieben werden, bevor die Datei gelöscht wird, da einige oder alle aufgezeichneten Dateisysteme über einen Puffer verfügen.
Wenn möglich, sollte der Befehl find ein Shell-Skript für die folgende Datei aufrufen:
shred -v -n 1 /path/to/your/file #overwriting with random data
sync #forcing a sync of the buffers to the disk
shred -v -n 0 -z -u /path/to/your/file #overwriting with zeroes and remove the file
auf jeder Datei.
rm -rvf $1
das Shell-Skript angehängt habe (wobei $ 1 der / path / to / your / file ist, der von der {}
Erweiterung in der übergeben wurde find... -exec
)
depth
man hier? Unsicher ist auch der nachgestellte Backslash
find /your/directory -exec shred {} \;
find [dirname] -depth -type f -exec shred -n1 {} \;
Dies führt eine Tiefensuche nach Dateien im Verzeichnis [dirname] durch und führt dann den shred -n1
Befehl für jede Datei aus. Wenn Sie Dateien und / oder Verzeichnisse entfernen, ist das Hinzufügen -depth
als Standard eine gute Angewohnheit, auch wenn dies in diesem Fall nicht unbedingt erforderlich ist. Wenn Sie mit dieser Art von Befehl ausführen rm -rf
statt shred
, -depth
benötigt wird , um sicherzustellen , dass Verzeichnisse nicht gelöscht , bevor der Inhalt der Verzeichnisse versucht wird gelöscht werden (also Fehler verursacht).
shred -N 1
, da es standardmäßig 3-mal zerkleinert wird und Schlangenöl ist. Entweder ist ein Mal ausreichend oder 30 Mal funktionieren nicht.
Die gründlichste shred
Methode, die ich gefunden habe, einschließlich des Entfernens von Verzeichnissen, besteht darin find
, ein Skript aufzurufen, um Folgendes zu erhalten shred
:
Diese Methode behandelt auch Dateinamen mit Leerzeichen.
Zuerst das shred
Skript (ich habe meins benannt dirShredder.sh
und im /root
Verzeichnis gespeichert :
shred -v -n 1 "$1" #overwriting with random data
sync #forcing a sync of the buffers to the disk
shred -v -n 0 -z -u "$1" #overwriting with zeroes and remove the file
rm -rvf "$1" # call rm to remove the directories
Rufen Sie das Skript dann folgendermaßen auf:
find /volume1/pathToShred/ -mindepth 1 -depth -exec /root/dirShredder.sh "{}" \;
Stellen Sie sicher, dass Sie die killit.sh
ausführbare Datei ( chmod +x
) markieren und den Pfad für das Verzeichnis, in das Sie den Shred-Vorgang ausführen möchten, und für das Verzeichnis, in dem Sie die Datei dirShredder.sh
speichern möchten, aktualisieren .
NOTA BENE - shred
Probleme mit Copy-on-Write-Dateisystemen (ZFS, BTRFS usw.) und sogar mit Journaling-Dateisystemen. Es gibt keinen wirklich akzeptierten "besten" Weg, um damit umzugehen, den ich anders als "verschlüsselte Dateisysteme" gefunden habe, aber ich bin mir nicht sicher, wie effektiv dies nachträglich ist.
Am ehesten können Sie nach dem Shreddern den gesamten freien Speicherplatz auf dem Laufwerk mit zufälligen Daten überschreiben (keine Nullen, dies scheint nicht immer zuverlässig zu sein). SSDs können auch andere Aspekte berücksichtigen (z. B. TRIM).
Ich gehe hier nicht auf diese ein, es gibt andere Stack-Antworten (die Antwort von @user unknown in dieser Frage zum Beispiel) und zahlreiche Diskussionen im gesamten Netz, die diese Themen behandeln. Suchen Sie sie daher heraus, wenn Sie diese Sicherheitsstufe benötigen.