web-dev-qa-db-ja.com

トレースを残さずにディレクトリを安全に削除するにはどうすればよいですか?

shredを使用すると、ファイルが上書きされて回復不能になることはすでに知っています。ただし、shredを使用してディレクトリを非表示にすることはできません。

エラーメッセージ:

書き込み用に開くことができませんでした:ディレクトリです

私はハードドライブを所有していないため、ddのようなハードドライブブラスター/リフォーマッターを使用できません(ssh経由でのみアクセスできます)。

私の問題は、実際のファイルをすべて削除した後でも、便利な名前のフォルダー名が残っていることです。名前は視聴者に何が入っていたかを示します。空のフォルダを削除しても、それでも回復できますか?ディレクトリ用のshredはありますか?

5
1478963

だからあなたはディレクトリ名を隠したい...実験。

# truncate -s 1G foobar
# losetup -f --show foobar
/dev/loop0
# mkfs.ext4 /dev/loop0
# mount /dev/loop0 /mnt/tmp
# cd /mnt/tmp
# mkdir collywobbles
# sync
# mv collywobbles shriggelfigs
# sync
# mv shriggelfigs flapjacks
# sync
# rmdir flapjacks
# cd ..
# umount /mnt/tmp

つまり、基本的には空のファイルシステムがあり、その中にディレクトリを作成し、名前を2回変更して、最後に削除しました。回復可能なものは何ですか?

# strings /dev/loop0 | grep -E '(collywobbles|shriggelfigs|flapjacks)'
flapjacksles
shriggelfigs
flapjacksles
shriggelfigs
collywobbles
shriggelfigs

ああ。 すべてです。すばらしい。 flapjacksは少なくとも2つのcollywobblesを上書きしたようですが、flapjackslesが少し短かったため、flapjacksに変換しました...

トレースを残さずにディレクトリを安全に削除するにはどうすればよいですか?

単一のファイルを安全に削除したり、実際にディレクトリ名を適切に削除したりすることはできません。せいぜい、ファイルシステムがまだ認識しているファイルの現在の表現の内容を上書きすることができます。ファイルのコピーを作成したことがありますか?ファイルを編集して保存したことがありますか?残念ながら、ファイルシステム自体が削除され、同じ名前のファイルに置き換えられたために、ファイルシステム自体が認識しなくなったコピーが存在する可能性があります。

ファイルをshredできます。ファイルシステムの空き領域全体をshredすることもできます。それはそれの約99%を取り除くのに良いです。それが十分でない場合、あなたはすべてを出さなければなりません。あなたが完全なことをするまで、あなたはそれが本当になくなったかどうかを決して知りません。

すべてのデータをコピーします。 shred -v -n 1 /dev/thedisk。データをコピーして戻します(保持したいビットのみ)。

2
frostschutz

唯一の安全な方法は

  1. すべてのファイルを別のファイルシステムにコピーします。
  2. ファイルシステムをアンマウントします。
  3. ファイルシステムを含むパーティションまたはボリュームをワイプします。
    これはあなたが質問で言及した「ハードドライブブラスター」です。 ddを使用しないでくださいcatも同様に優れています。これがルートファイルシステムでない限り、リモートでそれを行うことができます。ルートファイルシステムの場合、やりたいことは不可能です。
  4. ファイルシステムを再作成し、ファイルを復元します。

繰り返しません frostschutzの優れた説明 それほど厳しくないアプローチでは、ワイプしたいものが確実にワイプされない理由について。

これを管理する最善の方法は、予防的にデータを暗号化することです(encfsやecryptfsなどのファイル名を暗号化するファイルシステムを使用して)。データをワイプする場合は、必ずキーのすべてのコピーを破棄してください。

OPがDebian/Ubuntuまたはそのバリアントを使用している場合は、 このAsk Ubuntuの投稿 、特にsecure-delete推奨される回答のパッケージ。

0
Abel Cheung