可以简单地取消链接文件并在相关分区上运行,而不是使用srm
,wipe
或:shred
zerofree
mount /dev/sda1 /mnt
rm /mnt/confidential_file
umount /mnt
zerofree /dev/sda1
Run Code Online (Sandbox Code Playgroud)
srm
与、wipe
和相比,此方法的安全性如何shred
?
PS:我也在寻找使文件取消链接并安排文件粉碎的方法。
shred
只要您能保证没有创建该文件的其他副本,单个文件的安全性才有希望。这对于真正的大文件(电影)\xe2\x80\x94 来说可能很有效,假设你不重新编码这些文件,而对于小文件、文档和你实际使用的所有东西来说则根本不起作用。
每次您单击“保存”时,您就会得到另一个副本。因为保存会将文件截断为 0 字节,并通常在物理上不同的位置写入新文件 \xe2\x80\x94。甚至文件系统也不再知道旧副本的位置,因此无法删除它shred
或任何其他实用程序删除它。
所以你最终会覆盖所有可用空间。这比粉碎单个文件要好得多,但也有其自身的陷阱...您需要成为 root 才能覆盖根保留,并且文件系统根本不喜欢充满 \xe2\x80\x94 任何其他写入同时进行将会失败,因此您最终会在此过程中丢失实际数据。
\n\n所以像这个方法:
\n\ntruncate -s 1E sparsefile\nshred -v -n 1 sparsefile\nsync # other programs will lose data at this point\nrm sparsefile\n
Run Code Online (Sandbox Code Playgroud)\n\n使用SSD,您可以将zerofree作为内置功能,fstrim/discard正是这样做的,可以快速轻松地消除可用空间。基本上,使用 SSD,在修剪发生后,您将无法恢复任何已删除的文件。
\n\n安全吗?这取决于文件系统以及您想要删除的文件的大小。一些文件系统有角落和缝隙,比如多个小文件共享一个块,并且在创建一个充满随机数据的巨大文件时,该空间不会被覆盖。此外,可能还存在其他痕迹,例如目录条目中剩余的文件名......
\n\n您无法一次覆盖整个设备。
\n\n# backup everything\nblkdiscard /dev/sda # SSD\nshred -v -n 1 /dev/sda # HDD\n# create partitions, filesystems, restore backup\n
Run Code Online (Sandbox Code Playgroud)\n