合理的な時間内にgitリポジトリを正確に削除したいと思います。
しかし、そうするには時間がかなりかかります。ここには5MiB未満のフォルダを持つ小さなテストリポジトリがあります.git
。
$ du -ac ~/tmp/.git | tail -1
4772 total
$ find ~/tmp/.git -type f | wc -l
991
デフォルトのオプションを使用するとshred
時間がかなりかかります。次のコマンドは--force
権限を変更し、--zero
スマッシング後に0で上書きされました。基本的な破砕方法は、任意のデータ(-n3
)で3回上書きすることです。
後でこのファイルも削除したいと思います。man shred
によると--remove=wipesync
、(デフォルトで--remove
使用されている場合)ディレクトリでのみ動作しますが、ファイルでのみ動作しても速度が遅くなるようです。比較してください(gitリポジトリを再初期化するたびに):
$ time find ~/tmp/.git -type f | xargs shred --force --zero --remove=wipesync
real 8m18.626s
user 0m0.097s
sys 0m1.113s
$ time find ~/tmp/.git -type f | xargs shred --force --zero --remove=wipe
real 0m45.224s
user 0m0.057s
sys 0m0.473s
$ time find ~/tmp/.git -type f | xargs shred --force --zero -n1 --remove=wipe
real 0m33.605s
user 0m0.030s
sys 0m0.110s
もっと良い方法がありますか?
編集する:はい、暗号化が重要です。今はただ使っています-n0
。
time find ~/tmp/.git -type f | xargs shred --force --zero -n0 --remove=wipe
real 0m32.907s
user 0m0.020s
sys 0m0.333s
64本の平行線を使用するshreds
:
time find ~/tmp/.git -type f | parallel -j64 shred --force --zero -n0 --remove=wipe
real 0m3.257s
user 0m1.067s
sys 0m1.043s
ベストアンサー1
忘れてくださいshred
。無駄な仕事をしながら多くの時間を費やして本質を逃すことになります。
shred
20~30年前のディスク技術と高価な実験室機器を使用すれば(少なくとも理論上は)上書きしたデータを回復することが可能なため、ランダムデータで何度も上書きしてファイルを削除します(「Gutterman削除」)。最新のディスク技術では、もはやそうではありません。ゼロで一度上書きすることもできますが、複数のランダムパスのアイデアは廃止された後も持続します。バラよりhttps://security.stackexchange.com/questions/10464/why-is-writing-zeros-or-random-data-over-a-hard-drive-multiple-times-better-th
一方、機密情報の消去は消去とshred
指示されたファイルのデータのみを消去するため、完全に失敗します。以前に削除されたファイルに保存されているすべてのデータは、ファイルシステムを介さずにディスクに直接アクセスして回復できます。 Gitツリーのデータは再構成するのは簡単ではありませんが、これは実際の脅威です。
一部のデータをすばやく消去するには、データを暗号化してください。あなたはそれを使用することができます暗号化されたファイルシステム(ホームディレクトリ暗号化)または環境ファイルシステム(ディレクトリツリー暗号化)またはDMパスワード(フルパーティション暗号化)またはその他の方法。データを消去するには、キーを消去するだけです。
また、見ることができますディレクトリやファイルが実際に削除されたことをどのように確認できますか?