Linux Tips

ファイルを完全に消去するには

北浦訓行
2004/11/11

 ハードディスクやMO、FDなどの記録メディアを破棄したり譲渡する場合、記録されているデータを完全に消去することが望ましい。特に、個人情報や社外秘のデータを記録したことのあるディスクの場合、完全な消去は必須だ。

 rmコマンドでファイルを消去すれば、見かけ上そのファイルの内容を表示することはできなくなる。しかし、rmコマンドは該当ファイルのiノードを解放するだけで、データの内容自体はディスク上に残る。従って、ddコマンドなどによって直接データを取り出すことも可能であり、データが流出する可能性は否定できない。

 Linuxでファイルを完全に消去するには、shredコマンドを使う。shredは、ファイルを特別なパターンで繰り返し上書きすることによりデータの復旧をより困難にするツールで、GNU core utilsに含まれている。

 ファイルを削除する際は、以下のように--removeオプション(-uでも可)を付けてファイルを指定する。

$ shred --remove foo.txt

 --removeオプションを付けないでファイルを指定すると、ファイル名は残る(lsコマンドなどで表示される)が、内容は破壊される。

 また、ハードディスクなどのデバイスの内容を丸ごと消去する際は、rootで、

# shred -n 3 -v /dev/hdb

のようにオプションとデバイスを指定する。上記の場合、/dev/hdbに対してランダムな書き込みを3回繰り返す(-n -3)。-vは、進ちょく状況を表示するオプションだ。

注:ここではランダムな値を3回書き込むように設定したが、3回であれば万全という意味ではない。あくまでも目安として考えていただきたい。

 これくらいの消去でもそれなりの時間がかかるが、完ぺきを期すなら-n −3ではなく-zオプションを使う。-zオプションはランダムな書き込みを25回行い、最後にNULL(0)を書き込むため相当な時間が必要になる。

# shred -z -v /dev/hdb

 ランダムなデータを書き込む理由は、データを読み取られる可能性があるからだ。例えば、

# dd if=/dev/zero of=/dev/hdb

などとして、ハードディスク全体に0を書き込むと、それをPCに接続してもデータを復元することはできない。しかし、特別な装置を使うと「0に0を上書きした場合」や「1に0を上書きした場合」の違いをアナログ的に読み取ることができるため、データを復元できる可能性がある。そのような装置でも読み取り不可能にするために、ランダムな値を複数回書き込むのである。

 ちなみに、ハードディスクが1台しか搭載されていないPCのハードディスク内容を消去するときは、KNOPPIXを使うと便利だ。KNOPPIXをコンソールモードで起動するにはの方法でKNOPPIXをコンソールモードで起動して、shredの消去先として/dev/hdaを指定すればいい。

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間