Wie kann ich rm dazu bringen, Elemente in macOS sicher in einem Durchgang zu löschen?

Laut der rm-Manpage rm -P ...werden Elemente dreimal überschrieben, um sie sicher zu löschen:

-P Normale Dateien vor dem Löschen überschreiben. Dateien werden
                dreimal überschrieben, zuerst mit dem Bytemuster 0xff,
                dann 0x00 und dann wieder 0xff, bevor sie gelöscht werden.

Ist es möglich, Elemente mit Single Pass Secure zu löschen rm ...?

Anmerkungen:

  • Ich möchte srm nicht verwenden ! Ich brauche nur rm, bitte.
  • Ich verwende ein MacBook mit HDD und macOS 10.13.
Warum willst du nicht verwenden srm? Dafür ist es ausgelegt.

Antworten (3)

Nein, das ist mit dem Standard-rm-Befehl nicht möglich.

Sie können den rm-Quellcode (rm.c) von opensource.apple.com herunterladen und die Funktion rm_overwrite() bearbeiten, um nur einen einzigen Durchgang auszuführen.

Oder Sie könnten ein alternatives Programm verwenden, das die Datei überschreibt, und sie anschließend mit rm löschen. Ein solches alternatives Programm könnte einfach cat oder dd verwenden, um Bytes aus /dev/urandom oder /dev/null über die Datei zu kopieren.

Sie können nichts rmtun, wozu es nicht in der Lage ist. Andererseits srmwurde ausdrücklich für diesen Zweck konzipiert. Also, wie kommt man dazu, rmetwas zu tun, das srmout of the box funktioniert?

Erstellen Sie einen Alias

rmWenn Sie (den Befehl; nicht das eigentliche Programm) für einen einzelnen Durchgang "verwenden" möchten , verwenden Sie einen Alias ​​. Dazu müssen Sie srmauf Ihrem System installiert haben (verfügbar in MacPorts ).

$ alias rm="srm -s"

Jedes Mal, wenn Sie den Befehl jetzt ausgeben, rmwird er tatsächlich srmmit dem -sFlag für "Überschreiben in einem Durchgang" aufgerufen.

Anwendungsbeispiel: Angenommen, Sie haben ein Verzeichnis namens foomit einer Reihe von Dateien, die Sie löschen möchten. Geben Sie den Befehl aus

$ rm -rf foo

und was tatsächlich ausgeführt wird, ist:

$ srm -s -rf foo

Machen Sie den Alias ​​dauerhaft

Bearbeiten Sie Ihren ~/.bash_profileund fügen Sie den Alias-Eintrag hinzu. Starten Sie Ihre Bash-Sitzung neu und der "One-Pass- rmBefehl" ist jetzt verfügbar.

Ist srm in der Standardinstallation von High Sierra nicht verfügbar? In 10.9-10.11 ist es ...
srm ist nicht in 10.12

Wie in dieser Antwortdatei erwähnt, ist das Überschreiben von Dateien nicht mehr geeignet, um sicherzustellen, dass Dateien auf Computern mit SSD-Laufwerken sicher gelöscht werden, da die Art und Weise, wie Dateien darauf gespeichert/gelöscht werden, aufgrund der zugrunde liegenden Systeme unterschiedlich ist, die für Verschleißausgleich und Effizienz sorgen usw. Auch das Journaling von Dateisystemen kann die Dinge komplizieren.

Der beste Ansatz ist die Verwendung von Apples FileVault, damit alle gelöschten Dateien möglicherweise nur als verschlüsselte Fragmente bestehen bleiben.

Wenn Sie andere/ältere Laufwerkstypen verwenden, kann das Überschreiben helfen, sicherzustellen, dass die Dateien ordnungsgemäß gelöscht werden. In diesem Fall gibt es GNUs gshred, die als Teil des GNU-Coreutils -Pakets installiert werden können, z. B. mit brew:

brew install coreutils

Das gshredTool ermöglicht die Kontrolle über die Anzahl der Überschreibungen mit -narg und ermöglicht auch die Kontrolle darüber, wie das Löschen mit --removearg erfolgt. Also nur einmal überschreiben und unlinkdie Datei verwenden:

gshred -n 1 --remove=unlink file_to_overwrite_and_delete