在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 显示版本信息