上一篇 下一篇 分享链接 返回 返回顶部

Shred命令–在Linux中安全删除文件

发布人:Minchunlin 发布时间:2021-02-08 10:36 阅读量:2699

如今,对安全和匿名性的关注迫使即使是服务器用户也要额外考虑如何存储和删除他们的数据。对于敏感数据来说,仅仅用右键单击或使用rm命令删除文件是不够的。当你使用这些正常的方法删除一个文件时,数据并没有被销毁。这些方法只是删除磁盘上对文件的引用。它们基本上是告诉操作系统忽略它们。然而,被删除的信息仍然残留在磁盘上,并且可以使用广泛使用的软件轻松恢复。

输入shred命令。这个简单的工具是GNU Core Utilities软件包的一部分,几乎可以在任何Linux和UNIX系统上使用。shred命令会反复覆盖目标文件,使其极难或无法恢复。shred命令可以用来覆盖单个文件、多个文件、分区,甚至整个磁盘。

在本文中,我们将向您展示shred命令的基本用法以及一些有用的命令行选项。

注意:shred命令确实有它的局限性,只能覆盖本地数据。根据系统配置的不同,可能会有其他数据的副本。在你使用这个命令之前,请确保你了解这些限制。

Shred命令的基本语法

这里的基本语法的shred命令:

$ shred option <file_or_device>

“device”可以是任何分区或磁盘。

使用Shred命令

在没有任何命令行选项的情况下,使用shred命令会重复覆盖文件,默认情况下是三次。这里我们将通过创建一个样本文件,然后使用shred命令覆盖它的例子来展示shred命令的作用。

让我们创建一个样本文件,并在其中添加一些文本。

$ echo “this is sample text” > sample.txt 

创建文件后,使用ls命令记录其大小。它将用于以后与被覆盖文件的大小进行比较。

$ ls -l sample.txt 

现在,我们将使用shred命令,使其覆盖文件,使其无法使用。要做到这一点,只需在文件名后面输入shred,如下所示。

$ shred sample.txt

shred命令会覆盖这个文件三次。如果你用cat命令查看这个文件,你将只看到这样的垃圾。

现在再次查看文件大小。你会看到现在文件的大小已经改变了。

$ ls -l sample.txt 

磁盘大小增加的原因是shred现在填满了整个磁盘块(我们的文件比默认的块大小小)。现在的大小与磁盘的块大小相匹配。

$ sudo blockdev --getbsz /dev/sda1

注意:shred的默认行为是将文件大小四舍五入到整个块。你可以使用--exact或--x选项覆盖这个行为。

$ shred -x sample.txt 

命令行选项

shred命令提供了很多选项来扩展其实用性。让我们来看看其中的一些选项以及如何使用它们。

详细的输出

要查看shred命令在后台的操作,可以使用--verbose或--v选项,如下所示。

$ shred -v sample.txt 

注意:现在,对于所有其他输出,我将使用-v(详细)选项向您显示结果。

覆盖多个文件

使用shred命令,您可以使用单个命令一次切碎多个文件。要切碎多个文件,请指定文件名(以空格分隔)作为参数。您还可以使用通配符和通配符来选择特定的目标文件,例如所有具有相同扩展名的文件。

$ shred -v *.txt

将所有数据切碎到整个分区或驱动器上

碎片也可以用于覆盖分区甚至整个驱动器。例如,以下命令将覆盖分区上的所有数据/dev/sda2。  

$ sudo shred -v /dev/sda2

覆盖后删除文件

默认情况下,shred命令仅覆盖文件。如果要在覆盖后删除文件,可以使用--remove或-u选项。使用此选项还将在删除文件之前多次重命名该文件,以使文件更加模糊。

$ shred –u -v sample.txt

用零覆盖

用随机数覆盖文件后,shred命令还允许您使用零进行最终覆盖,以隐藏切碎行为。为此,请使用--zero或-z选项,如下所示:

$ shred -z -v sample.txt

覆盖n次

默认情况下,shred命令将文件覆盖3次。您可以通过使用--iterations或-n选项更改文件被覆盖的次数,然后更改要覆盖文件的次数来更改此默认行为。例如,以下命令将覆盖sample.txt文件4次:

$ shred –n 4 -v sample.txt 

仅覆盖前n个字节

默认情况下,shred命令将覆盖整个文件。但是,如果只想切碎前n个字节,则可以使用--size或-s选项,再切个要切碎的字节数。可以用K,M或B指定字节以指定倍数。

例如,以下命令将仅粉碎指定文件的前8个字节:

$ shred -s8 sample.txt 

从上面的输出中,您可以看到shred命令仅切碎了几个初始字节。它没有改变文件的其余部分。

在命令行上查看帮助

您可以使用以下--help选项找到有关shred命令的更多有用信息:

$ shred --help

以上就是shred命令的基础知识。在本文中,我们已经说明了如何安全地删除文件,分区和磁盘,以使其很难恢复。

目录结构
全文