ツールwipe
にはオプションがあります-k Keep files, i.e. do not remove() them after overwriting
。
まあ…消去されたファイルを削除しないということはどういう意味ですか?
答え1
これマンページだから説明-k
:
ファイルの保存:ファイルを上書きした後はリンクを解除しないでください。デバイス固有のファイルを保持しながらデバイスを初期化したい場合に便利です。これは意味します
-F
。
主なユースケース-k
は次のとおりです。
wipe -k /dev/sda
これにより、デバイスノードを削除せずにドライブのすべての内容が上書きされます。
「標準」ファイルに使用すると、ファイルの内容は消去されますが、ファイル自体(名前と親ディレクトリにあるファイルの存在)は保存されます。
答え2
同様のプログラムwipe
そしてshred
他のプログラムと同じインタフェースを使用してファイルデータを扱うように設計されています。彼らは通常のオペレーティングシステム機能を使用してファイルにゼロを書き、ファイルシステムは古いデータと同じディスクブロックに新しいデータを保存して古いデータを上書きすることを期待しています。 unlink()
.
したがって、ファイルを上書きした後、保存は削除ではなくファイルの保存のみになります。内容のみが変更されました。
たとえば、shred
ファイルはデフォルトで切断されません。
$ cat somefile
some secret data
$ shred somefile
$ ls -l somefile
-rw-r--r-- 1 username username 4096 Jun 27 19:28 somefile
$ od -tx1 somefile |head -2
0000000 2b d7 fe 76 a0 4c 79 4e b6 bc 26 7d 6c b0 4e ed
0000020 81 a2 bf 3f ce af ce f0 07 2b fe 80 50 39 e3 c9
その後も、shred
ファイルはまだ任意のバイトでいっぱいです。ファイルは切り捨ても削除もされません。shred
上書きすると(最後のデータブロックを完全に上書きするために)、ファイルサイズが丸められるため、実際にサイズが増加しました。
もちろんを使用してファイルを削除できますrm somefile
。
上書きによる仮定は、すべてのファイルシステムに適用されるわけではありません。少なくともファイルデータのロギング(ext4で可能)と書き込み時のコピーファイルシステム(btrfs)は、デフォルトでデータの複数のコピーを保存するため、上書きは効果的ではありません。