前: rm invocation, 上: Basic operations
shredは,非常に高価なハードウェアを用いてもデータの復活を妨 げるように,デバイスやファイルを上書きします.
通常,ファイルを削除するとき(see rm invocation),データは実際には 破壊されません.ファイルが保存されている場所をリストアップしている索引 のみ破壊し,記憶装置は再利用可能になります.索引の再構築を試み,その部 分が再利用されていない場合,ファイルを元に戻すことが可能なアンデリート ユーティリティがあります.
ほとんど満タンのドライブを使用している忙しいシステムでは,スペースは数 秒で再利用可能になります.しかし,それが確実であることを知る方法はあり ません.機密データがあり,機密でないデータでファイルを実際に上書きする ことでリカバリが不可能だということを確かめたいかもしれません.
しかし,そうした後でも,研究所へディスクを持っていき,上書きされたデー タの下の元データのかすかな“残響”を探すために感度の高い(そして高価な) 多くの機器を使用することが可能です.データが一度上書きされただけでは, それはさほど難しくありません.
取り返しができないように何かを削除する最前の方法は,メディアに酸をかけ て破壊する,溶かしてしまう,またはそれに似たことをすることです.フロッ ピーディスクのような,安い着脱可能なメディアに対しては,これは好ましい 方法です.しかし,ハードドライブは高価で,溶かすのが難しいため, shredユーティリティでは破壊することなく類似の効果を達成しよ うとします.
これは,古いデータに対するダメージを最大にするように選ばれたデータパター ンで,上書き動作を何回も使用します.これがフロッピーディスクで動作して いても,パターンはハードドライブで最適な効果があるように設計されている ものになります.詳細は,ソースコードと,Sixth USENIX Security Symposium (San Jose, California, 22–25 July, 1996)の予稿から,Peter Gutmannの論文Secure Deletion of Data from Magnetic and Solid-State Memoryを参照してください.論文は http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.htmlで,オ ンラインでも利用可能です.
shredは非常に重要な仮定に依存していることに注意して ください.それは,ファイルシステムがその場所のデータを上書きするとい うことです.これは伝統的な方法ですが,現代の多くのファイルシステムはこ の仮定を満足するように設計されていません.例外は以下を含みます.
ファイルシステムがどのように動作しているかよく分からない場合,その場所 に上書きされないと仮定すべきで,それは,そのファイルシステムの通常のファ イルで,shredが信頼できる動作を行うことができないことを意味 します.
一般的に言って,上記の手法で設計されたファイルシステムの問題をバイパス するため,ファイルではなくデバイスにshredするとより信頼でき ます.しかし,デバイスをshredしてさえ,常に完全に信頼するこ とはできません.例えば,ほとんどのディスクは,不良セクタがアプリケーショ ンに見えないようにをマッピングします.不良セクタが機密データを含む場合, shredではそれを破壊することは不可能です.
shredは,バックアップについて何もしないように,これらの問題 の検出も報告も試みません.しかし,ファイルではなくデバイスに shredする方がより信頼できるので,shredはデフォルト で出力ファイルを切り詰めたり削除したりしません.このデフォルトはデバイ スに対しより適していて,それは通常切り詰めもできませんし,削除もすべき ではありません.
最後に,バックアップとミラーの危険性を検討します.ファイルシステムのバッ クアップとリモートのミラーには,削除不可能なファイルのコピーが含まれ, それでshredしたファイルを後に復活させることが可能です.その ため,その後shredを使用して破壊したいデータを保持している場 合,バックアップやミラーが無いことを確かめて下さい.
shred [option]... file[...]
プログラムは以下のオプションも受け入れます.Common optionsも参照 してください.
この引数はオプションと見なされます.一般的な`--'オプションはコマ ンドラインのオプションの終りを示すために使用されますが,`-'は普通 のファイルとして解釈されます.
この使用目的は,削除された一時ファイルをshredすることです. 例です.
i=`tempfile -m 0600` exec 3<>"$i" rm -- "$i" echo "Hello, world" >&3 shred - >&3 exec 3>-
シェルコマンド`shred - >file'は,shredの呼び出しの前に, それがfileを切り詰めるため,fileの内容を`shred'しない ことに注意してください.コマンド`shred file',または(Bourne互換シェ ルを使用している場合は)コマンド`shred - 1<>file'を代わりに使用し てください.
最初のドライブのフロッピーディスクに作成されたファイルシステムの,全て の記録を消去するために,以下のコマンドを使用するかもしれません.そのコ マンドは,1.44MBフロッピーを消去するために約20分かかります.
shred --verbose /dev/fd0
同様に,ハードディスクの選択されたパーティションの全てのデータを消去す るために,以下のようなコマンドを与えることが可能です.
shred --verbose /dev/sda5
終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.