在linux及类linux平台下删除文件都是rm命令,但rm命令并非真的空除了该数据(可能过能debugfs 、ext3grep等工具恢复)。不过一般情况下,很多的数据也不是很重要,所以不怕被人恢复出来。而对于一些安全性要求较高的数据,可以借助shred命令彻底从服务器上删除。
1.原理
rm删除的原理是通过释放文件占用的索引节点和数据块达到 “删除”,而shred所实现的删除,除了具有rm所谓的删除外,还通过重复复写要删除掉的文件所占用的节点和数据块。通过多次覆写达到无法恢复。
2.用法
$ shred -u file
shred会用一些随机内容覆盖文件所在的节点和数据块,并删除文件(-u参数)。
如果想清除的更彻底一点可以加-z 参数,意思是先用随机数据填充,最后再用0填充。
$ shred -u -z file
3.清除磁盘
另外shred还可以清除整个分区或磁盘,比如想彻底清除/dev/sdb1分区的内容可以这样:$ shred /dev/sdb1(注意不要加-u参数)
4.shred详细的用法
-f, --force 更改权限允许写入(如有必要)
-n, --iterations=N 重写N次,默认为3次
--random-source=FILE 从指定文件读取数据
-s, --size=N 将文件粉碎为固定大小(可使用后缀如K、M、C等)
-u, --remove 重写后截短并移除文件
-v, --verbose 显示进度
-z, --zero - add 用0覆盖数据
-help 显示帮助
-version 显示版本信息