如何在Linux上安全删除文件

在热插拔托盘中打开硬盘驱动器Biehler Michael / Shutterstock.com

粉碎旧数据文件的原因与粉碎旧纸质文档的原因相同。我们告诉您有关安全删除Linux文件的相关信息。本教程涵盖了 切碎 命令和 安全 - 删除 公用事业套件。

删除的文件通常可以恢复

删除文件实际上并不会将其从硬盘驱动器中删除。这完全取决于文件系统使用inode的方式。这些是文件系统中的数据结构,用于保存有关文件的元数据。文件的名称,它在硬盘驱动器上的位置,它具有的属性和权限等等都存储在inode中。目录只不过是一个文件本身。一个保存目录包含的文件的名称和inode编号。

当您删除文件时 R M,文件系统释放适当的inode并调整目录文件。这标记了文件过去占用的硬盘驱动器上的空间。想象一下,你走进一个图书馆并浏览卡片索引,找到一本书的目录卡,然后撕掉它。这本书还在书架上。它更难找到。

换句话说,文件使用的空间现在可以由其他文件自由使用。但是旧文件的内容仍然存在于该空间中。在覆盖该空间之前,很有可能检索到该文件。

但完全摆脱文件并不像简单地覆盖它们那么简单。正如我们将看到。

不要用SSD来做这件​​事

这些技术适用于传统的机电硬盘驱动器(HDD),不应与固态硬盘(SSD)一起使用。它不起作用,会导致额外的写入和不必要的磨损。要安全地擦除SSD中的数据,您应该使用SSD制造商提供的实用程序。

有关: 怎样删除Linux终端中的文件和目录

碎片命令

切碎 旨在为您执行覆盖,因此无法恢复已删除的文件。它包含在本文研究期间测试的所有Linux发行版中,包括Ubuntu,Fedora和Manjaro。

在这个例子中,我们将在一个名为〜/ research的目录中工作,该目录包含许多文本文件。它还包含一些其他目录,而这些目录又包含其他文件。我们假设这些文件是敏感的,必须完全从硬盘驱动器中删除。

我们可以通过使用来查看目录树结构 命令如下。该 -d (目录)选项原因 仅列出目录,而不是列出所有文件。目录树结构如下所示:

树-d

终端窗口中的目录树结构

切碎一个单一的FIle

要粉碎单个文件,我们可以使用以下命令。我们使用的选项是:

  • ü:覆盖后取消分配并删除文件。
  • v:详细选项,这样 切碎 告诉我们它在做什么。
  • ž:使用零执行最终覆盖。

shred -uvz Preliminary_Notes.txt_01.txt

在终端窗口中shred -uvz Preliminary_Notes.txt_01.txt

切碎 默认情况下会将文件覆盖四次。前三次传递使用随机数据,最终传递使用零,如我们所要求的。然后它删除文件并覆盖inode中的一些元数据

撕碎四次传球

设置覆盖通过次数

我们可以问 切碎 使用更多或更少的覆盖传递 -n (数字)选项。 切碎 将始终使用至少一个通行证。我们在这里提供的数字是我们需要的额外通行证的数量 切碎 去表演。所以 切碎 总是会比我们要求的号码再多做一次。要获得三次传球,我们要求额外两次传球:

shred -uvz -n 2 Preliminary_Notes.txt_02.txt

shred -uvz -n 2在终端窗口中的Preliminary_Notes.txt_02.txt

正如所料, 切碎 三次通过。

切碎在终端窗口中进行三次传球

如果你愿意,更少的通过 – 更少的粉碎 – 显然更快。但它不太安全吗?有趣的是,三次传球可能绰绰有余。

有关: 您只需要擦除磁盘一次即可安全擦除它

切碎多个火锅

通配符可以使用 切碎 选择要删除的文件组。该 * 代表多个字符,而且 代表一个字符。此命令将删除当前工作目录中的所有剩余“Preliminary_Notes”文件。

shred -uvz -n 2 Preliminary_Notes _ *。*

shred -uvz -n 2在终端窗口中的Initial_Notes _ *。*

其余文件均由。处理 切碎 反过来。

在终端窗口中从shred输出

切碎 没有递归选项,因此它不能用于擦除嵌套目录的目录树。

安全删除文件的麻烦

像。。一样好 切碎 是的,有一个问题。现代日记文件系统(如ext3和ext4)付出了巨大努力,以确保它们不会中断,损坏或丢失数据。对于日志文件系统,无法保证覆盖实际发生在已删除文件使用的硬盘空间上。

如果您只是安心地删除了文件,那么这些文件已经被彻底删除了 R M 那么,我会做的 切碎 可能很好。但是,不要错误地认为数据肯定已经消失并且完全无法恢复。情况可能并非如此。

有关: 为什么你不能“安全地删除”文件,以及做什么

安全删除套件

安全 - 删除 命令试图克服日志文件系统的最佳努力,并成功安全地覆盖文件。但完全相同的警告适用。仍然无法保证覆盖实际发生在硬盘驱动器区域,您需要它来删除感兴趣的文件。有更多的机会,但不能保证。

安全 - 删除 命令使用以下重写和操作序列:

  • 1用0xFF值字节覆盖。
  • 5用随机数据覆盖。
  • 27覆盖由Peter Gutmann定义的特殊值。
  • 用随机数据覆盖5个以上。
  • 将文件重命名为随机值。
  • 截断文件。

如果所有这一切对你来说都太过分了,那你就是好伙伴。对奥克兰大学教授彼得古特曼来说,这似乎也是过分的。他在1996年发表了一篇论文,讨论了这些技术,从中产生了一个城市神话,你需要立即使用该论文中讨论的所有技术。

彼得古特曼此后一直试图让这个精灵重新回到瓶子里说:“用随机数据进行良好的擦洗可以预期。”

但我们就是我们所处的地方,而这些是我们采用的一系列技术 安全 - 删除 命令。但首先,我们需要安装它们。

安装安全删除

使用 apt-get的 如果您使用的是Ubuntu或其他基于Debian的发行版,请将此软件包安装到您的系统上。在其他Linux发行版上,请使用Linux发行版的包管理工具。

sudo apt-get install secure-delete

sudo apt-get install在终端窗口中安全删除

包含四个命令 安全 - 删除 束。

  1. SRM 是安全的 R M,用于通过删除文件并覆盖其硬盘空间来删除​​文件。
  2. sfill 是一种覆盖硬盘驱动器上所有可用空间的工具。
  3. sswap 用于覆盖和清理交换空间。
  4. sdmem 用于清理你的RAM。

srm命令

你用的是 SRM 命令就像你使用的那样 R M 命令。要删除单个文件,请使用以下命令。该 -z (零)选项原因 SMR 使用零作为最终擦除而不是随机数据。该 -v (详细)选项使 SRM 告诉我们它的进展情况。

srm -vz Chapter_One_01.txt

srm -vz在终端窗口中的Chapter_One_01.txt

你会注意到的第一件事是 SRM 是慢的。它确实提供了一些视觉反馈,但是当你再次看到命令提示符时,这是一种解脱。

在终端窗口中从srm输出

您可以使用 -l (减少安全性)选项将通过次数减少到两次,这会大大加快速度。

srm -lvz Chapter_One_02.txt

srm -lvz在终端窗口中的Chapter_One_02.txt

SRM 告诉我们这个 – 在它看来 – 不太安全,但它仍然删除并覆盖我们的文件。

终端窗口中srm的输出

您可以使用-l(减少安全性)选项两次,以将通过次数减少到一次。

srm -llvz Chapter_One_03.txt

srm -llvz在终端窗口中的Chapter_One_03.txt

使用srm与多个文件

我们也可以使用通配符 SRM。此命令将擦除并擦除第一章的其余部分:

srm -vc Chapter_One_0?.txt

srm -vc在终端窗口中的Chapter_One_0?.txt

文件由。处理 SRM 反过来。

srm在终端窗口中擦除多个文件

使用srm删除目录及其内容

-r (递归)选项将使 SRM 删除所有子目录及其内容。您可以将路径传递给第一个目录 SRM

在这个例子中,我们删除了当前目录〜/ research的所有内容。这意味着〜/ research和所有子目录中的所有文件都被安全删除。

srm -vz *

srm -vz *在终端窗口中

srm开始处理目录和文件。

srm开始在终端窗口中处理

它最终会返回到命令提示符。在本文研究的测试机器上,大约需要一个小时来删除当前目录和三个嵌套目录之间分发的大约200个文件。

srm在终端窗口中完成

所有文件和子目录都按预期删除。

sfill命令

如果您担心使用rm删除的文件怎么办?怎样查看旧版本并确保它被覆盖?该 sfill 命令将覆盖硬盘驱动器上的所有可用空间。

在这样做时,您会注意到硬盘驱动器上的可用空间越来越少,直到没有可用空间的点。什么时候 sfill 完成后,它会释放所有可用空间给您。如果您正在管理多用户系统,这将是非常具有破坏性的,因此这是一项应该在数小时内进行的维护任务。

即使在单个用户计算机上,硬盘空间的丢失也意味着它无法使用一次 sfill 已经占用了大部分空间。这是你要开始然后离开的东西。

为了尝试加快速度,你可以使用 -l (减少安全性)选项。其他选择是 -v (详细)和 -z (零)我们之前看到的选项。在这里,我们要问 sfill 安全地覆盖/ home目录中的所有可用空间。

sudo sfill -lvz / home

sudo sfill -lvz / home在终端窗口中

让自己舒服。在只有10 GB硬盘的测试计算机上 – 这是在下午中午开始,并在一夜之间完成。

在终端窗口中输出sfill

它会流失数小时。这是与 -l (减少安全性)选项。但是,最终,您将返回到命令提示符。

sswap命令

sswap 命令会覆盖交换分区中的存储。我们需要做的第一件事就是确定你的交换分区。我们可以这样做 BLKID 命令,列出块设备。

sudo blkid

sudo blkid在终端窗口

您需要找到单词“swap”,并记下它所附加的块设备。

终端窗口中的blkid输出

我们可以看到交换分区已连接到 的/ dev / SDA5

我们需要在覆盖期间关闭对交换分区的磁盘写入。我们将使用 使用swapoff 命令:

sudo swapoff / dev / sda5

sudo swapoff / dev / sda5在终端窗口中

我们现在可以使用了 sswap 命令。

我们会用的 的/ dev / SDA5 作为命令行的一部分 sswap 命令。我们也会使用 -v (详细)选项和 -二 (减少安全性)选项,我们之前使用过。

sudo sswap -llv / dev / sda5

sudo sswap -llv / dev / sda5在终端窗口中

sswap 开始在你的交换分区中工作,覆盖它中的所有内容。它不需要多长时间 sfill。感觉就像它。

完成后,我们需要将交换分区恢复为活动交换空间。我们这样做 swapon命令 命令:

sudo swapon / dev / sda5

sudo swapon / dev / sda5在终端窗口中

sdmem命令

安全 - 删除 package甚至包含一个擦除计算机中随机存取存储器(RAM)芯片的工具。

冷启动攻击需要在关闭后立即对您的计算机进行物理访问。这种类型的攻击可能允许从RAM芯片中检索数据。

如果你认为你需要保护自己免受这种类型的攻击 – 大多数人认为他们需要这样做是一件容易的事 – 你可以在关闭计算机之前擦除RAM。我们将使用 -v (详细)和 -二 (再次减少安全性)选项。

sudo sdmem -vll

sudo sdmem -vll在终端窗口中

终端窗口将填满星号作为指示 sdmem 正在通过你的RAM工作。

在终端窗口中输出sdmem

简易选项:只需加密您的硬盘

而不是安全删除文件,为什么不使用加密保护您的硬盘驱动器或您的主文件夹?

如果这样做,任何人都无法访问任何内容,无论是实时文件还是已删除文件。而且您不必保持警惕并记住安全删除敏感文件,因为您的所有文件都已受到保护。

大多数Linux发行版都会询问您是否要在安装时使用加密。说“是”将节省很多未来的恶化。您不得处理秘密或敏感信息。但是,如果您认为在完成计算机时可以将计算机交给或出售给其他人,那么加密也会简化计算机。

body #primary .entry-content ul#nextuplist list-style-type:none; margin-left:0px; padding-left:0px;
body #primary .entry-content ul#nextuplist li a text-decoration:none; color:#1d55a9;

请阅读下一步

  • > Steam不支持Ubuntu 19.10和未来版本
  • >怎样使您的哑窗空调智能化
  • >微软的新Windows终端现已推出
  • >怎样在Google地图上报告虚假商家信息
  • >盗版怎样使法律流媒体服务更好
本文机器自动生成,不保证语句完整通顺和表达准确,亦不对内容真实有效性负责,请读者知悉。