可能重复:
如何清除 Linux 中的可用磁盘空间?
这个问题的灵感来自于粉碎存储卡上文件的最佳工具是什么?,其中布里斯推荐使用 来擦除 SD 卡的简单模式dd if=/dev/random
。这是我在 Google 上搜索到的问题的解决方案。brice++
我看到这个问题涉及更普遍的问题:是否有一个程序可以真正删除所有已删除的文件?。但该问题已标记windows
。我想将 Linux 答案添加到我们的知识库中。我使用shred -uz
FWIW。
我还想听听专家们如何成功对抗取证技术。(不,我没有受到起诉的威胁。我没什么可向当局隐瞒的。我只是好奇。;) 有shred(1)
阻止传票的记录吗?布里斯的 SD 卡技术怎么样?一旦闪存被一次性覆盖,就没有取证技术可以恢复它,对吗?
最后,感谢斯普拉特内链接到媒体清理指南(PDF)另一个相关的 Windows 问题。但那份长达 43 页的文档中没有提到 Linux 或 UNIX!
答案1
这个问题与如何清除 Linux 中的可用磁盘空间?
这是我当时给出的答案;
您可以使用一套名为 secure-delete 的工具。
sudo apt-get install secure-delete
它有四个工具:
srm - 安全删除现有文件
smem - 安全从 ram 中删除文件的痕迹
sfill - 擦除硬盘上所有标记为空的空间
sswap - 擦除交换空间中的所有数据。
来自 srm 的手册页
srm 旨在以安全的方式删除介质上的数据,这样窃贼、执法人员或其他威胁就无法恢复。擦除算法基于论文“安全删除磁性和固态存储器中的数据”,该论文由领先的民用密码学家之一 Peter Gutmann 在第六届 Usenix 安全研讨会上发表。
srm的安全数据删除流程如下:
- 1 次通过 0xff
- 5 次随机传递。/dev/urandom 用于安全 RNG(如果可用)。
- 27 次传球具有由 Peter Gutmann 定义的特殊值。
- 5 次随机传递。/dev/urandom 用于安全 RNG(如果可用)。
- 将文件重命名为随机值
- 截断文件
作为额外的安全措施,文件以 O_SYNC 模式打开,每次传递后都会调用 fsync()。srm 为提高速度写入 32k 个块,填充磁盘缓存的缓冲区以强制它们刷新并覆盖属于该文件的旧数据。
希望这可以帮助。
答案2
shred 可以使用其 -iterations= 参数(默认值为 25)进行多次覆盖,这是使文件无法恢复的最佳方法。