秘密にしたいファイルを完全に削除する方法
復元されたくないファイルを完全に削除するには、shred
コマンドでドライブごとデータを削除する。
ファイルは、普通の操作で削除しても一般的にディレクトリ情報が削除されるだけでデータ自体はハードディスク上に残っています。そのため簡単とは言えませんがデータを復元できる可能性が有ります。実際消した思っていたメールが復元されて賭博の証拠が見つかってしまった事件(注1)が有りました。
犯罪の証拠になりそうなデータはなくとも、誰かに自分のデータを見られるのは気分の良いものではありません。このような場合には、ファイルのデータを復元できないように削除するshred
コマンドが役に立ちます。
shred
コマンドでファイルを削除
Linux(Ubuntu)には、データを復元できないように削除するshred
コマンドが標準でインストールされています。このコマンドを使用することで、ファイルを復元できないよう完全に削除することができます。
shred
コマンドは次のように使用します。
shred -uz -n 3 file
これで file を安全に削除できます。
主なオプションには次のものが有ります。
- -n num
- ランダムなデータで num 回上書きする。-z オプションを使う場合に、0 を指定することでランダムデータの書き込みをスキップできます。
- -u
- データを上書き後にファイルを削除する。
- -v
- 進行状況を表示する。
- -z
- 最後に 0 で上書きする。
shred
コマンドでの欠点
shred
コマンドは、ファイルに上書きする時に記録メディアで元と同じ場所に書き込まれることを前提としています。そのため一部のファイルシステムでは上書きしたはずのデータが残ってしまう可能性が有ります。
ドライブのデータを完全に削除
そこでパソコンを廃棄する場合などは、ファイルレベルではなくファイルシステムに依存しないディスクレベルでデータを削除することをオススメします。
Linux ではドライブもファイルの1つとして扱うことができるので、ファイルの削除と同じようにshred
コマンドを使用して完全にデータを削除できます。
# 三回ランダムデータで上書きして、最後に0で上書きする。進行状況の表示付き。
sudo shred -nzv 3 /dev/sdb
# 時間がかかるので、普通のデータならこれで十分かな。
sudo shred -nzv 0 /dev/sdb
この例ではドライブを/dev/sdb としていますが、環境によってファイル名が異なります。間違ったファイルを指定するとシステムを破壊してしまうので十分に気をつけてください。
ドライブの指定には、/dev/sdb ではなく/dev/disk/by-id を使用するとファイル名とドライブの対応付けが分かりやすくファイル名の間違いを防げます。
Windows のデータを完全に削除
Windows のデータもドライブとしてみれば Windows も Linux も違いはありません。
そこで Windows で使用していたドライブを Ubuntu(Linux)システムに接続するか、そのまま Ubuntu などの LiveCD を使って起動して、shred
コマンドでデータを削除できます。