[[Vorlage(Getestet, bionic)]] {{{#!vorlage Wissen [:Pakete_installieren: Pakete installieren] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [http://lambda-diode.com/software/wipe/ Wipe] {en} ist ein Kommandozeilenprogramm zum sicheren Löschen und Überschreiben von Dateien, Ordnern und Device-Files (wie zum Beispiel Partitionen). Dateien, die auf diese Weise entfernt werden, können selbst mit forensischen Methoden nicht mehr wiederhergestellt werden und sind unwiderruflich zerstört. Im Unterschied zu [:shred:] kann wipe auch Ordner löschen und bietet ein paar mehr Einstellungsmöglichkeiten. {{{#!vorlage Warnung Um zu erfahren, welche Einschränkungen vorhanden sind, sollte man unbedingt die Hinweisbox im Artikel [:Daten_sicher_löschen:] lesen! Dies gilt insbesondere beim Einsatz von [:SSD:SSDs]. Neben dem hier beschriebenen Programm gibt es noch ein gleichnamiges Programm ([#Links siehe Links]) mit ähnlicher Zielsetzung, welches unter anderem in Distributionen wie [wikipedia:SystemRescueCd:] enthalten ist. Da die Kommandozeilen-Parameter der beiden Programme völlig unterschiedliche Bedeutung haben, sollte man sich im Zweifelsfall vorher mit einem Blick in die [:man:Manpage] vergewissern, ob man die richtige Optionen verwendet. }}} = Installation = Wipe kann durch das folgende Paket installiert [1] werden: {{{#!vorlage Paketinstallation wipe, universe }}} = Benutzung = Wipe wird im Terminal [2] aufgerufen. Mit Hilfe optionaler Parameter und der Datei, dem Ordner oder dem Device, das man löschen möchte, kann man das Verhalten des Programms steuern. Manche Optionen lassen sich auch miteinander kombinieren, Beispiele findet man weiter unten. Hier eine Tabelle aller möglichen Parameter: ||'''Parameter'''||'''Bedeutung'''|| ||``-f``|| Wipe wird nicht mehr nachfragen, ob eine Datei/Ordner wirklich gelöscht werden soll || ||``-r``|| Alle Dateien in einem Ordner und dessen Unterordnern und die Dateien, die sich darin befinden, werden rekursiv gelöscht|| ||``-c``|| Wenn der Benutzer, der Wipe ausführt, keine Schreibrechte für eine Datei besitzt, wird automatisch versucht, dieses mit [:chmod:] selbst zu setzen.|| ||``-i``|| Zeigt Fortschrittsinformationen auf dem Screen|| ||``-s``|| Alle Meldungen, außer Fehler und Fragen werden unterdrückt|| ||``-q``|| Schnelles Löschen. Alle Dateien werden nur viermal mit zufälligen Daten überschrieben.|| ||``-Q N``|| Verändert die Anzahl der Überschreibungen auf N-mal, beim schnellen Löschen mittels ``-q``. Standard ist viermal. || ||``-a``|| Bricht sofort ab, sobald ein Fehler oder ein Problem auftritt, auch wenn der Fehler oder das Problem dies nicht erfordert|| ||``-R``|| Erwartet einen Parameter, der eine alternative Quelle (Seed) zum Erstellen von zufälligen Zahlen angibt. Standard ist /dev/random. ``-R`` benötigt auch den ``-S`` switch, siehe unten. || ||``-S``|| Erwartet einen Parameter, der spezifiziert, von was für einer Art die mit ``-R`` angegebene Quelle ist. Mögliche Werte sind: ``-S r``, was eine normale Datei oder Charakter-Device bei ``-R`` annimmt;``-S c``, was den bei ``-R`` angegebenen Parameter als Kommando ausführt und die Ausgabe des Kommandos mit MD5-Hashed und dies als Seed für zufällige Zahlen nimmt;``-S p`` erzeugt zufällige Zahlen aus dem Hashen von Umweltvariablen. ``-R`` wird dabei nicht benötigt. Dies stellt die schwächste Methode dar.|| ||``-M``|| Erwartet einen Parameter, welcher angibt, mit welchem Algorithmus der Seed zu einer größeren Zufallszahl umgerechnet werden soll. ``-M l`` benutzt die Standard -Random-Funktion der libc rand(). ``-M a`` benutzt [wikipedia:RC4:] und ``-M r`` benutzt [wikipedia:RC6:]. Für RC6 muss Wipe selbst von Hand kompiliert werden und dabei mit der Option ``ENABLE_RC6`` konfiguriert werden.|| ||``-l``|| Erwartet als Parameter die Größe des Devices oder der Datei in Bytes. Dabei können die Angaben mit K, M, G und b versehen werden, um die Angabe in Kilobyte, Megabyte, Gigabyte oder Blocks zu machen.|| ||``-o``|| Damit kann eine Datei oder ein Device erst ab einer bestimmten Stelle "gewiped" werden. Die Angabe erfolgt genauso wie bei ``-l``.|| ||``-e``|| Benutze die genaue Größe und runde nicht auf, um eventuellen Müll im letzten Block zu löschen|| ||``-Z``|| Versuche nicht, Dateien zu löschen, indem rekursiv die Datei immer wieder halbiert wird. Hat nur Auswirkungen auf Dateien und Ordner, nicht auf Device-Files.|| ||``-F``|| Versuche, nicht die Dateinamen zu verbergen, indem die Datei vor dem Überschreiben und Löschen umbenannt wird. Das Umbenennen gibt grundsätzlich keine Garantie, dass die Existenz der Datei wirklich verschleiert wird. Jedoch macht es das Überschreiben von vielen Dateien auf einmal deutlich langsamer.|| ||``-k``|| Behalte die Dateinamen. Verhindert das unlinken einer Datei nach dem Überschreiben. Hilfreich vor allem bei Device-Files, die man zwar überschreiben, aber danach wieder benutzen will. Dieser Paramter impliziert ``-F``.|| ||``-D``|| Folge symbolischen Links. Standardmäßig werden über symbolische Links referenzierte Dateien nicht gelöscht, durch diese Option jedoch werden sie es. Kann nicht zusammen mit ``-r`` benutzt werden.|| ||``-v``|| Zeigt die Version von Wipe an|| ||``-h``|| Zeigt eine kurze Hilfe|| = Beispiele = * Löscht und überschreibt eine Datei: {{{#!vorlage Befehl wipe datei.jpg }}} * Löscht und überschreibt eine Datei, ohne nochmals nach zu fragen: {{{#!vorlage Befehl wipe -f datei.jpg }}} * Löscht und überschreibt rekursiv einen Ordner und alle Unterordner und die Dateien darin: {{{#!vorlage Befehl wipe -r Ordner/ }}} * Löscht die Datei bzw. das Verzeichnis unter `$PFAD` und überschreibt den freigegebenen Speicher genau einmal mit Nullen (`-Q 1`). Dies ist bedeutend schneller als die Voreinstellung und laut neuerer Forschungen ausreichend (siehe [#Links Heise-Artikel "Sicheres Löschen"]): {{{#!vorlage Befehl wipe -q -Q 1 -R /dev/zero -S r -r $PFAD }}} * Löscht und überschreibt den Inhalt der Partition `/dev/sda6`, ohne die Partition danach zu entfernen (nur mit Root-Rechten!): {{{#!vorlage Befehl sudo wipe -k /dev/sda6 }}} * Löscht die Partition `/dev/sda7` mit Root-Rechten und überschreibt den freigegebenen Speicher genau einmal mit Nullen, ohne die Partition danach zu entfernen: {{{#!vorlage Befehl sudo wipe -q -Q 1 -R /dev/zero -S r -k /dev/sda7 }}} = Problembehebung = == Geschwindigkeit bei unterschiedlichen Dateisystemen == Es wurde mehrfach beobachtet, dass wipe in Kombination mit den Dateisystemen `ext4` und `btrfs` deutlich langsamer als mit `ext3` arbeitet. Eine Erklärung wären erweiterte Cache-Mechanismen neuerer Dateisysteme, die einen erhöhten organisatorischen Aufwand beim Zugriff auf Dateien zur Folge haben. Alternativ kann man bei diesem Problem auch [:shred:] nutzen, das in Kombination mit [:find:] ebenfalls rekursiv arbeitet. == Vorschaubilder == Wenn man Bilder mit wipe gelöscht hat, sind deren Vorschaubilder immer noch in '''~/.cache/thumbnails/''' und dessen Unterordnern vorhanden und dort gut einsehbar, z.B. in '''~/cache/thumbnails/large/'''. Dort also auch wipe einsetzen. = Links = * [http://lambda-diode.com/software/wipe/ Offizielle Webseite] {en} * Ein anderes "wipe" - Verwechslungsgefahr: * [sourceforge:wipe:Anderes wipe auf sourceforge] {en} * [wikipedia:Wipe:] - Wikipedia * [heise:-198816:Sicheres Löschen: Einmal überschreiben genügt] {de} - heise News, 01/2009 * [:Daten_sicher_löschen:] {Übersicht} Übersichtsartikel #tag: Sicherheit, Shell, Server