web-dev-qa-db-ja.com

コマンドラインから `shred`を使用する

一部のファイルを安全に消去する必要があります。以前にLinuxシステムでshredを使用したことがあるので、調べてみたところ、shredがmacportsのcoreutilsパッケージの一部であることがわかりました。やった port install coreutilsを使用してcoreutilsをインストールしますが、コマンドラインでshredが見つかりません。

Macのコマンドラインでshredを機能させるにはどうすればよいですか?問題がある場合は、Mac OS X 10.7.5(Lion)を使用しています

49
inspectorG4dget

port install coreutilsはバイナリの名前にg接頭辞を追加するので、シュレッドは/opt/local/bin/gshred

30
Lri

OSXには、ファイルを安全に削除するための組み込みコマンドsrmがあります。 https://developer.Apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/srm.1.html を参照してください。 rm -Pを使用して、バイトのシーケンスでファイルを3回上書きすることもできます。

Sierra以降では、macOSにsrmが含まれなくなりました。しかし、ユーザーは自作でそれをインストールできます:

brew install homebrew/dupes/srm && brew link --force homebrew/dupes/srm
62
Lily Hahn

@ user495470の回答は、出された質問に対して正しいです。最近のシステムでは、srmshredも実際には意味がありません。

これは主にSSDが原因です。磁気ディスクとは異なり、最新のTRIM対応ディスクは、削除されたデータをバックグラウンドで自動的に消去します。

SSDはウェアレベリングも実行します。これは、ファイルを「上書き」しようとする試みを、無駄なもの(別の物理的な場所に書き込むことになります)と望ましくないもの(ディスクの摩耗に不必要に寄与するもの)の両方を作成します。

SSDが付属するすべてのMacでは、TRIMが有効になっています。

もう1つの問題は、ファイルシステム、特にジャーナリングされたファイルシステムで、データが書き出される前に他の場所にデータのコピーを保持できます。

磁気メディアであっても、これは両方に問題を引き起こす可能性があります srm

すべてのユーザー[..]は、srmが適切なブロックを上書きするファイルシステムでのみ機能することを認識しておく必要があります。特に、[〜#〜] [〜#〜]は、ジャーナルファイルシステムの大部分で動作します。

そして shred

[..]細断処理は、ファイルシステムが所定の場所にあるデータを上書きするという非常に重要な前提に依存しています。 [..]多くの最新のファイルシステム設計は、この仮定を満たしていません。例外は次のとおりです。ログ構造またはジャーナルファイルシステム[..]

Mac OS X v10.3以降、HFS Plusボリュームはデフォルトでジャーナルされます。

最近、ファイルを安全に「削除」するための最良の方法は、FileVaultを有効にして(最初は暗号化されていないディスクに書き込みを行わないようにする)、削除してTRIMで整理することです。

不幸な出来事によって、あなたが磁気媒体上にいて、ジャーナリングを無効にしていて、何らかの理由でディスクを暗号化できない場合、選択肢は次のとおりです。

  • rm -Pを使用して、ファイルを0xff、次に0x00、次に0xffで上書きします
  • coreutilsgshredにインストールします(つまり、brew install coreutils && gshred secrets.txt
  • srmhomebrew-dupesおよびhomebrew-coreから削除されましたが、 someone'sここにタップを公開 機能します(つまり、brew install khell/homebrew-srm/srm && srm secrets.txt
  • 媒体の物理的破壊 :)
22
Molomby