shred

覆盖文件以掩盖其数据内容


语法格式

shred [-fuvxz] [-n num] [-s num] [--random-source=file] files
shred [--help] [--version]

命令简介

利用shred命令,可以重复地覆盖指定的文件,以隐藏或清除其数据内容,也可以选择在覆盖之后再删除文件,从而增加恢复文件数据的难度,确保信息的安全。其中,files是需要覆盖的一个或一组文件。

通常,当删除一个文件时,文件系统仅仅修改信息节点位图和数据块位图,释放信息节点和文件占用的数据块。如果释放的存储空间没有重新分配,其数据仍然存在。因此,为保险起见,最好是利用shred命令,覆盖文件,或覆盖后再删除文件。

命令选项

-f, --force  必要时修改文件的访问权限,以允许写文件。

-n num, --iterations=num  覆盖文件指定的次数(默认覆盖文件3次)。实际上,指定的覆盖次数不应超过25次,超过25次将会重复使用其内部的覆盖模式。

-s num, --size=num  粉碎指定字节数量的数据,指定的数字后面可加K(1024)、M(10242)或G(10243)等后缀,表示相应的字节单位。

-u, --remove  覆盖后再截短,最后删除文件。注意,如果文件是一个硬链接文件,只能删除指定的文件。

-v, --verbose  显示命令的处理过程。

-x, --exact  通常,shred会覆盖分配给文件的所有数据块,即使分配的最后一个数据块并未完全占用。“-x”选项表示仅仅处理文件数据本身占用的存储空间,不要扩展到最后一个数据块的空余部分。例如,假定一个文件的数据只有1KB,文件系统分配的数据块是4KB,常规的做法是覆盖整个4KB的数据块,如果指定了“-x”选项,仅仅覆盖数据块的前1KB存储空间。

-z, --zero  在指定(或默认)覆盖次数的基础上,最后再用全零做一次覆盖,以掩盖先前经过粉碎处理的数据。

--random-source=file  从指定的文件中获取随机数据。

应用实例

1. 使用shred命令覆盖软盘/dev/fd0中的所有数据(通常这需要花费较长的时间)。

$ shred -v /dev/fd0

2. 使用shred命令覆盖磁盘分区/dev/sda5中的所有数据。

$ shred -v /dev/sda5

3. 使用shred命令先覆盖文件,然后再删除文件。

$ shred -uv /home/gqxing/security

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z