网站搜索

在 Linux 中永久安全删除“文件和目录”的 3 种方法


在大多数情况下,我们用来从计算机中删除文件的方法(例如使用Delete键、垃圾文件或rm命令),这些方法并不能永久、安全地从计算机中删除文件硬盘(或任何存储介质)。

该文件只是对用户隐藏,并且驻留在硬盘上的某个位置。它可以被数据窃贼、执法部门或其他威胁恢复。

建议阅读: 删除目录中除一个或几个文件之外的所有文件的 3 种方法

假设某个文件包含安全系统的用户名密码等机密或秘密内容,则具有必要知识和技能的攻击者可以轻松恢复该文件的已删除副本,并访问这些用户凭据(您可能可以猜到这种情况的后果)。

在本文中,我们将解释一些用于在 Linux 中永久安全地删除文件的命令行工具。

1. 粉碎 – 覆盖文件以隐藏内容

shred 覆盖文件以隐藏其内容,并且也可以选择删除它。

shred -zvu -n  5 passwords.list

在下面的命令中,选项:

  1. -z – 添加最后用零覆盖以隐藏粉碎
  2. -v – 启用显示操作进度
  3. -u – 覆盖后截断并删除文件
  4. -n – 指定覆盖文件内容的次数(默认为3)

您可以在 shred 手册页中找到更多使用选项和信息:

man shred

2. Wipe – 安全擦除 Linux 中的文件

Linux wipe 命令可以安全地从磁存储器中删除文件,从而无法恢复已删除的文件或目录内容。

首先,您需要安装擦除工具,运行以下相应的命令:

sudo apt-get install wipe   [On Debian and its derivatives]
sudo yum install wipe       [On RedHat based systems]

以下命令将销毁目录 private 下的所有内容。

wipe -rfi private/*

使用标志的地方:

  1. -r – 告诉擦除递归到子目录
  2. -f – 启用强制删除并禁用确认查询
  3. -i – 显示删除过程的进度

注意:擦除只能在磁存储器上可靠地工作,因此对于固态磁盘(存储器)请使用其他方法。

通读 wipe 手册页以获取其他使用选项和说明:

man wipe

3. Linux 安全删除工具包

Secure-delete是一个安全文件删除工具的集合,其中包含srm(secure_deletion)工具,用于安全地删除文件。

首先,您需要使用以下相关命令安装它:

sudo apt-get install secure-delete   [On Debian and its derivatives]
sudo yum install secure-delete       [On RedHat based systems]

安装后,您可以使用 srm 工具在 Linux 系统上安全地删除文件或目录,如下所示。

srm -vz private/*

其中使用的选项:

  1. -v – 启用详细模式
  2. -z – 用零而不是随机数据擦除最后一次写入

通读 srm 手册页以获取更多使用选项和信息:

man srm

4. sfill - 安全可用磁盘/Inode 空间擦除器

sfillsecure-deletetion工具包的一部分,是一个安全的可用磁盘和inode空间擦除器,它以安全的方式删除可用磁盘空间上的文件。 sfill 检查指定分区上的可用空间,并用 /dev/urandom 中的随机数据填充它。

下面的命令将在我的根分区上执行 sfill,并使用 -v 开关启用详细模式:

sudo sfill -v /home/aaronkilik/tmp/

假设您创建了一个单独的分区 /home 来存储普通系统用户主目录,您可以在该分区上指定一个目录以对其应用 sfill

sudo sfill -v /home/username

您可以在手册页中阅读有关 sfill 的一些限制,您还可以在其中找到其他使用标志和说明:

man sfill

注意secure-deletetionsswapsdmem)工具包与本指南的范围没有直接关系,但是,我们将出于知识目的和将来的使用对其进行解释。

5. sswap – 安全交换擦拭器

它是一个安全分区擦除器,sswap 以安全的方式删除交换分区上的数据。

注意:在使用sswap之前记得卸载swap分区!否则你的系统可能会崩溃!

只需确定您的交换分区(并使用 swapon 命令检查分页和交换设备/文件是否打开),接下来,使用 swapoff 命令禁用分页和交换设备/文件(导致交换分区不可用)。

然后在交换分区上运行sswap命令:

cat /proc/swaps 
swapon
sudo swapoff /dev/sda6
sudo sswap /dev/sda6    #this command may take some time to complete with 38 default passes

努力阅读 sswap 手册页以获取更多使用选项和信息:

man sswap

6. sdmem – 安全内存擦除器

sdmem 是一种安全内存擦除器,它旨在以安全的方式删除内存 (RAM) 中存在的数据。

它最初被命名为 smem,但由于在 Debain 系统上存在另一个名为 smem 的软件包 - 报告每个进程和每个用户的内存消耗,开发人员决定将其重命名为 sdmem


sudo sdmem -f -v

有关更多使用信息,请阅读 sdmem 手册页:

man sdmem 

建议阅读: PhotoRec – 在 Linux 中恢复已删除或丢失的文件

就是这样!在本文中,我们回顾了一些用于在 Linux 中永久且安全地删除文件的命令行工具。像往常一样,通过下面的评论表提出您对这篇文章的想法或建议。