パーティションからrmとZerofreeを使用してデータを削除するのはどのくらい安全ですか?

パーティションからrmとZerofreeを使用してデータを削除するのはどのくらい安全ですか?

または、次を使用する代わりに、単にファイルのリンクを解除して関連パーティションで実行することもできますsrmwipeshredzerofree

mount /dev/sda1 /mnt
rm /mnt/confidential_file
umount /mnt
zerofree /dev/sda1

srmこの方法は、と比較してwipeどのくらい安全ですかshred

PS:また、ファイルのリンクを解除し、ファイルの破砕をスケジュールする方法も探しています。

答え1

shred個々のファイルは、そのファイルの他のコピーが作成されないことを保証できるだけ安全です。これは非常に大きなファイル(映画)に対して機能します。そのファイルを再エンコードしないと仮定すると、小さなファイル、文書、および実際に使用するすべての項目にはまったく機能しません。

「保存」をクリックするたびに別のコピーが作成されます。保存すると、ファイルはゼロバイトに切り捨てられ、新しいファイル(通常は異なる物理的な場所)に書き込まれるためです。ファイルシステムでさえ、以前のコピーがどこにあるかはもうわからないので、shred他のユーティリティを使用して削除することはできません。

したがって、利用可能なすべてのスペースをカバーします。これは単一のファイルを破砕するよりもはるかに優れていますが、独自のトラップがあります。ルート予約を無視するにはルートである必要があり、ファイルシステムは単にいっぱいになるのが好きではありません。同時に着信他の書き込みは失敗すると、このプロセスで実際のデータが失われます。

したがって、次の方法があります。

truncate -s 1E sparsefile
shred -v -n 1 sparsefile
sync # other programs will lose data at this point
rm sparsefile

SSDを使用すると、組み込み機能としてゼロフリーがあり、fstrim/discardがすぐにその機能を実行し、空き領域をすばやく簡単に削除します。デフォルトでは、SSDを使用するとクリーンアップ後に削除されたファイルを復元できません。

安全ですか?これは、削除するファイルシステムとファイルサイズによって異なります。一部のファイルシステムには、ブロックを共有するいくつかの小さなファイルのような角があり、任意のデータでいっぱいの巨大なファイルを作成するときにそのスペースを上書きしません。また、ディレクトリエントリに残っているファイル名などの他のトレースがある可能性があります。

一度にデバイス全体を覆うことはできません。

# backup everything
blkdiscard /dev/sda    # SSD
shred -v -n 1 /dev/sda # HDD
# create partitions, filesystems, restore backup

関連情報