在 Linux 中永久安全地删除“文件和目录”的 3 种方法
大多数情况下,我们用来从计算机中删除文件的方法(例如使用Delete
密钥、垃圾文件或rm
命令)都不能永久安全地从硬盘(或任何存储介质)中删除文件。
该文件只是对用户隐藏,位于硬盘的某个位置。数据窃贼、执法人员或其他威胁者都可以恢复它。
建议阅读: 删除目录中除一个或几个文件之外的所有文件的 3 种方法
假设一个文件包含机密或秘密内容,例如安全系统的用户名和密码,那么具备必要知识和技能的攻击者可以轻松恢复该文件的已删除副本并访问这些用户凭据(您可能可以猜到这种情况的后果)。
在本文中,我们将介绍一些用于在 Linux 中永久安全地删除文件的命令行工具。
1. Shred – 覆盖文件以隐藏内容
shred覆盖文件以隐藏其内容,也可以选择将其删除。
$ shred -zvu -n 5 passwords.list
在下面的命令中,选项:
-z
– 最后用零覆盖以隐藏粉碎-v
– 可显示操作进度-u
– 覆盖后截断并删除文件-n
– 指定覆盖文件内容的次数(默认为 3 次)
您可以在 shred 手册页中找到更多使用选项和信息:
$ man shred
2. Wipe——在 Linux 中安全删除文件
Linux擦除命令可以安全地从磁性存储器中删除文件,从而使已删除的文件或目录内容无法恢复。
首先,您需要安装擦除工具,以便运行以下相应的命令:
$ sudo apt-get install wipe [On Debian and its derivatives] $ sudo yum install wipe [On RedHat based systems]
以下命令将销毁目录private下的所有内容。
$ wipe -rfi private/*
使用的标志如下:
-r
– 告诉 wipe 递归到子目录-f
– 启用强制删除并禁用确认查询-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/*
其中使用的选项:
-v
– 启用详细模式-z
– 用零代替随机数据擦除最后一次写入的内容
阅读srm手册页以获取更多使用选项和信息:
$ man srm
4. sfill - 安全空闲磁盘/Inode 空间清除器
sfill是安全删除工具包的一部分,是一个安全的空闲磁盘和 inode 空间擦除器,它以安全的方式删除空闲磁盘空间上的文件。sfill检查指定分区上的空闲空间并用来自 / dev/urandom的随机数据填充它。
以下命令将在我的根分区上执行sfill-v
,并使用开关启用详细模式:
$ sudo sfill -v /home/aaronkilik/tmp/
假设您创建了一个单独的分区/home
来存储普通系统用户的主目录,您可以在该分区上指定一个目录来应用sfill:
$ sudo sfill -v /home/username
您可以在手册页中阅读有关sfill的一些限制,还可以在其中找到其他使用标志和说明:
$ man sfill
注意:安全删除工具包中的以下两个工具(sswap和sdmem)与本指南的范围没有直接关系,但我们将出于知识目的和将来使用的目的对它们进行解释。
5. sswap – 安全交换擦除器
它是一个安全的分区擦除器,sswap以安全的方式删除交换分区上的数据。
注意:使用sswap之前,请记得卸载交换分区!否则您的系统可能会崩溃!
只需确定您的交换分区(并使用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 中文件的命令行工具。像往常一样,通过下面的评论表提供您对这篇文章的想法或建议。