删除键不可靠!在Linux下教你用命令行彻底删除文件

译文
系统 Linux 系统运维
在大多数情况下,我们想要删除电脑文件,一般会使用删除键或者rm命令、将文件扔到垃圾箱。但是,这些方法并没把文件从我们的电脑里彻底删除,只是把文件隐藏起来,让用户看不见而已。本文中,我们将介绍多款命令行工具,帮你实现永久安全地删除Linux下的文件。

【51CTO.com快译】在大多数情况下,我们想要删除电脑文件,一般会使用删除键或者rm命令、将文件扔到垃圾箱。但是,这些方法并没把文件从我们的电脑里彻底删除,只是把文件隐藏起来,让用户看不见而已。

回收站

假设某个文件含有机密或秘密的内容,比如安全系统的用户名和密码,如果攻击者拥有必要的专长和技能,就能轻松恢复已删除的文件,从而访问那些用户资料,这种场景造成的后果可想而知。

本文中,我们将介绍多款命令行工具,帮你实现永久安全地删除Linux下的文件。

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

shred可覆盖文件以隐藏内容,另外还可以删除文件。

  1. $ shred -zvu -n 5 passwords.list 

这个命令包括的几个选项有:

  • -z – 最后一次覆盖添加0,以隐藏覆盖操作
  • -v – 能够显示操作进度
  • -u – 覆盖后截断并删除文件
  • -n – 指定覆盖文件内容的次数(默认值是3次)

shred – 覆盖文件以隐藏内容

shred – 覆盖文件以隐藏内容。

你可以在shred的参考手册页找到更多的使用选项和信息:

  1. $ man shred 

2. wipe – 安全地擦除Linux下的文件

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

首先,你需要安装wipe工具才能使用它,运行下面命令:$ sudo apt-get install wipe [在Debian及其衍生版上]

  1. $ sudo yum install wipe [在基于RedHat的系统上] 

下面这个命令将擦除目录private下面的一切内容。

  1. $ wipe -rfi private/* 

相关标志的用法如下:

  • -r – 告诉wipe递归查询子目录
  • -f – 启用强行删除,并禁用确认查询
  • -i – 显示删除过程的进度

wipe – 安全地删除Linux下的文件

wipe – 安全地删除Linux下的文件

注意:wipe只能适用于磁存储器,对于固态磁盘要使用其他方法。

仔细阅读wipe的参考手册页,了解更多的使用选项和使用说明:

  1. $ man wipe 

3. 面向Linux的secure-deletetion工具包

secure-delete是一套安全文件删除工具,包含SRM(secure_deletion)工具,它是用来安全地删除文件。

首先,你要安装它,为此使用下面这个相关命令:$ sudo apt-get install secure-delete [在Debian及其衍生版上]

  1. $ sudo yum install secure-delete [在基于RedHat的系统上] 

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

  1. $ srm -vz private/* 

使用的选项如下:

  • -v – 启用详细信息模式
  • -z – 用0而不是随机数据擦除上一次写入的内容

srm – 安全删除Linux下的文件

srm – 安全删除Linux下的文件

仔细阅读srm的参考手册页,了解更多的使用选项和信息:

  1. $ man srm 

4. sfill –安全免费的磁盘/索引节点空间擦除工具

ffill是secure-deletetion工具包的一部分,它是一种安全免费的磁盘和索引节点空间擦除工具,可以安全地删除闲置磁盘空间上的文件。sfill可检查指定分区上的闲置空间,并用来自/dev/urandom的随机数据来填充。

下面这个命令将在我的根分区上执行sfill,-v参数选项符启用详细信息模式:

  1. $ sudo sfill -v /home/aaronkilik/tmp/ 

假设你创建了一个单独的分区,/home用来存储平常的系统用户主目录,那么你可以在该分区上指定一个目录,对它进行sfill操作:

  1. $ sudo sfill -v /home/username 

sfill有几个局限性,参考手册页中有说明,你还能找到另外的使用标志和操作说明:

  1. $ man sfill 

注意:secure-deletetion工具包中的下面两个工具(sswap和sdmem)与本文并不直接有关,不过我们会介绍它们,也许将来用得着。

5. sswap – 安全交换分区擦除工具

这是一个安全分区擦除工具,sswap删除的数据驻留在交换分区上的数据。

警告:记得在使用sswap之前先卸载掉你的交换分区!不然系统可能会崩溃!

只要确定你的交换分区(并使用swapon命令,核实分页和交换设备/文件是否开启),下一步,使用swapoff命令,禁用分页和交换设备/文件。

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

  1. $ cat /proc/swaps 
  2. $ swapon 
  3. $ sudo swapoff /dev/sda6 
  4. $ sudo sswap /dev/sda6 #这个命令需要一段时间才能完成,默认情况下执行38趟  

sswap – 安全交换分区擦除工具

sswap – 安全交换分区擦除工具

确保仔细阅读sswap的参考手册页,了解更多的使用选项和信息:

  1. $ man sswap 

6. sdmem – 安全内存擦除工具

sdmem是安全内存擦除工具,它旨在安全地删除驻留在内存中的数据。

它原先名叫smem,但是在Debain系统上,有另一个程序包名叫smem(报告每个进程和每个用户的内存使用情况),于是开发人员将它改名为sdmem。

  1. $ sudo sdmem -f -v 

想了解更多的使用信息,请仔细阅读sdmem的参考手册页:

  1. $ man sdmem 

就是这样!我们在本文中介绍了多款永久安全地删除Linux下文件的命令工具。欢迎留言交流。

原文标题:rmanently and Securely Delete ‘Files and Directories’ in Linux,作者:Aaron Kili

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:庞桂玉 来源: 51CTO.com
相关推荐

2021-07-08 08:56:30

Linux命令删除用户

2022-04-11 06:03:24

FdupesLinux命令行工具

2022-11-08 09:38:18

Linux命令行删除文件

2022-08-14 19:19:14

Linux

2010-06-12 15:30:57

UDP协议

2010-08-25 21:03:38

命令行DHCP

2023-03-28 08:40:22

命令行JSON用法

2015-09-02 15:47:05

命令行fdupesLinux

2019-05-21 10:38:17

Linux命令行

2009-08-04 10:06:37

如何进入linux命令linux系统linux

2009-08-11 09:35:47

Linux命令行linux命令快捷键

2022-11-02 08:20:43

Linux

2009-12-09 09:25:52

Linux命令行svn命令

2010-06-01 19:14:53

SVN命令行

2011-04-08 15:22:56

Oracle导入导出命令

2018-12-12 09:44:07

Linux命令行时间管理

2021-04-20 11:25:38

Linux命令文件

2010-04-16 17:16:34

2009-08-11 09:58:22

Linux命令行Linux命令svn命令

2019-12-10 10:03:18

Linux命令行工具
点赞
收藏

51CTO技术栈公众号