如何在 Debian 10 中使用 Shred 命令安全删除文件

如果您有一个包含敏感信息的文件,仅使用 rm 命令或按 Del 键删除它可能还不够。 通常,当您使用 rm 命令删除文件时,它只会从我们的目录列表中删除。 被删除的文件保留在硬盘上,并且可以被具有一些必要技能的攻击者恢复和滥用。

在 Linux 中, shred 命令允许您通过用乱码数据反复覆盖文件来安全地删除文件。 这使得原始数据的检索变得非常困难或几乎不可能,即使已恢复已删除的文件也是如此。 Shred 命令不仅会覆盖文件,还会在指定时将其删除。 您还可以使用它来覆盖分区或整个磁盘。

在本文中,我们已经解释了如何在 Debian10 操作系统中使用 shred 命令来安全地删除文件。 在其他 Debian 和 Ubuntu 版本中可以遵循相同的过程。 我们还讨论了它的一些命令行选项。

使用 Shred 命令

Shred 命令是 GNU 核心实用程序之一,几乎可以在包括 Debian 在内的任何 Linux 系统上使用。 让我们看看如何使用 shred 命令:

粉碎命令语法

以下是 shred 命令语法:

$ shred option <FILE>

其中“FILE”可以是文件或任何硬盘分区。

当您使用不带任何选项的 shred 命令时,它会多次用乱码数据覆盖文件。 为了理解 shred 命令的作用,让我们创建一个名为“testfile.txt”的测试文件,其中包含一些文本。

$ echo “this file contains some sample text” > testfile.txt

这就是我们的 example 文件看起来像:

创建文件后,还要检查文件的大小。 稍后我们将使用它来将其与碎文件的大小进行比较。

$ ls -l testfile.txt

现在运行 shred 命令(不带任何命令行选项),后跟要粉碎的文件名。

$ shred testfile.txt

上面的命令会覆盖 测试文件.txt 三次(默认)。 要查看测试文件发生了什么,请调用 cat 命令:

$ cat testfile.txt

从 cat 命令输出中,您只会看到文件中的乱码。

此外,如果您查看文件大小,您会发现它有所增加。

粉碎命令行选项

shred 命令具有一些命令行选项,可让您扩展其功能。 让我们看一下这些选项如何工作的一些示例。

详细输出

使用 -v 或 –verbose 选项,您可以查看后台发生的情况。

$ shred -v testfile.txt

以下输出显示了用随机数覆盖文件的三遍。

注意:接下来对于以下所有示例,我们将使用 -v 选项来显示输出。

覆盖多个文件

如果您有多个文件,则可以使用单个命令将它们粉碎,而不是使用单独的命令逐个粉碎它们。 要粉碎多个文件,请将它们全部键入作为参数(以空格分隔)或使用通配符指定具有相同扩展名的所有文件。

$ shred -v testfile1.txt testfile2.txt testfile3.txt

如以下屏幕截图所示,所有三个文件都将在一个进程中被粉碎。

覆盖驱动器

您还可以使用 shred 命令覆盖驱动器和分区。 为了 example覆盖所有数据 /dev/sda2 分区,命令将是:

$ sudo shred -v /dev/sda2

用零覆盖

通常, shred 命令会用随机数据覆盖文件。 但是,在您的系统上,在此设备上执行粉碎操作会很明显。 您可以使用 shred 命令的 -z 或 –zero 选项隐藏粉碎过程。

使用带有 -z 或 –zero 选项的 shred 命令首先用随机数覆盖文件,然后添加最后一个用零覆盖的文件。

$ shred -vz testfile.txt

在上面的输出中,你可以看到,在用随机数覆盖文件 3 次后,shred 最终用零覆盖了文件。

选择性覆盖

shred 命令用随机垃圾覆盖文件 3 次。 要增加覆盖次数,请使用 -n 或 –iterations 选项。

为了 example切碎 测试文件.txt 使用 5 次覆盖通道,命令将是:

$ shred -vn5 testfile.txt

仅覆盖前 x 个字节

shred 命令的默认行为是覆盖整个文件。 将 -s 或 –size 选项与 shred 命令一起使用允许您仅覆盖前 x 个字节。 例如,仅覆盖前 6 个字节 测试文件.txt,命令将是:

$ shred -vs6 testfile.txt

上述命令只会覆盖指定文件的前 6 个字节。 您可以通过调用 cat 命令来验证它。

覆盖后删除文件

如前所述,如果我们在没有任何命令行选项的情况下使用 shred 命令,它只会覆盖文件。 但是,覆盖后,您也可以使用 shred 命令的 -u 或 –remove 选项删除文件。 请注意,它还会在删除之前重命名文件。

$ shred -vu testfile.txt

从上面的输出可以看出,文件在被覆盖和重命名后最终被删除了。

查看帮助

要查找有关 shred 命令的更多详细信息,请使用 –help 选项或访问手册页:

$ shred --help

或者

$ man shred

在本文中,您学习了如何在 Debian 10 Buster 系统中使用 shred 命令以及各种命令行选项。 您已经看到 shred 命令如何覆盖和删除文件,使它们难以使用任何恢复工具恢复。