3 个在 Linux 中永久并安全删除文件和目录的方法

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

该文件只是对用户隐藏,它驻留在硬盘上的某个地方。它有可能被数据窃贼、执法取证或其它方式来恢复。

假设文件包含密级或机密内容,例如安全系统的用户名和密码,具有必要知识和技能的攻击者可以轻松地恢复删除文件的副本并访问这些用户凭证(你可以猜测到这种情况的后果)。

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

1、 shred – 覆盖文件来隐藏内容

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


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

在下面的命令中,选项有:

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

shred - 覆盖文件来隐藏它的内容

你可以在 shred 的帮助页中找到更多的用法选项和信息:


  1. $ man shred

2、 wipe – 在 Linux 中安全删除文件

wipe 命令可以安全地擦除磁盘中的文件,从而不可能恢复删除的文件或目录内容

首先,你需要安装 wipe 工具,运行以下适当的命令:


  1. $ sudo apt-get install wipe [Debian 及其衍生版]
  2. $ sudo yum install wipe [基于 RedHat 的系统]

下面的命令会销毁 private 目录下的所有文件。


  1. $ wipe -rfi private/*

当使用下面的标志时:

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

wipe – 在 Linux 中安全擦除文件

注意:wipe 仅可以在磁性存储上可以可靠地工作,因此对固态磁盘(内存)请使用其他方法。

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


  1. $ man wipe

3、 Linux 中的安全删除工具集

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

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


  1. $ sudo apt-get install secure-delete [Debian 及其衍生版]
  2. $ sudo yum install secure-delete [基于 RedHat 的系统]

安装完成后,你可以使用 srm 工具在 Linux 中安全地删除文件和目录。


  1. $ srm -vz private/*

下面是使用的选项:

  1. -v – 启用 verbose 模式
  2. -z – 用0而不是随机数据来擦除最后的写入

srm – 在 Linux 中安全删除文件

阅读 srm 手册来获取更多的使用选项和信息:


  1. $ man srm

4、 sfill -安全免费的磁盘 / inode 空间擦除器

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

以下命令将在我的根分区上执行 sfill,使用 `-v' 选项启用 verbose 模式:


  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 – 安全 swap 擦除器

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

警告:请记住在使用 sswap 之前卸载 swap 分区! 否则你的系统可能会崩溃!

要找到交换分区(并检查分页和交换设备/文件是否已经使用,请使用 swapon 命令),接下来,使用swapoff 命令禁用分页和交换设备/文件(使 swap 分区不可用)。

然后在(关闭的) swap 分区上运行 sswap 命令:


  1. $ cat /proc/swaps
  2. $ swapon
  3. $ sudo swapoff /dev/sda6
  4. $ sudo sswap /dev/sda6 #这个命令要花费一些时间,默认要进行 38 遍擦除

sswap – 安全 swap 擦除器

阅读 sswap 的手册来获取更多的选项和信息:


  1. $ man sswap

6、 sdmem – 安全内存擦除器

sdmem 是一个安全的内存擦除器,其设计目的是以安全的方式删除存储器(RAM)中的数据。

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


  1. $ sudo sdmem -f -v

关于更多的使用信息,阅读 sdmen 的手册:


  1. $ man sdmem

原文发布时间为:2017-01-18

本文来自合作伙伴“Linux中国”

时间: 2024-11-08 18:59:37

3 个在 Linux 中永久并安全删除文件和目录的方法的相关文章

如何在Linux中合并多个pdf文件?

风信网(ithov.com)原创文章:在Linux中进行批量处理pdf文件,我们需要将多个pdf文件合并成一个文件,我们可以使用以下命令来完成: [root@localhost www]#&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf ithov1.pdf ithov2.pdf ithov

如何在Linux中压缩及解压缩.bz2文件

对文件进行压缩,可以通过使用较少的字节对文件中的数据进行编码来显著地减小文件的大小,并且在跨网络的文件的备份和传送时很有用. 另一方面,解压文件意味着将文件中的数据恢复到初始状态. Linux 中有几个文件压缩和解压缩工具,比如gzip.7-zip.Lrzip.PeaZip 等等. 本篇教程中,我们将介绍如何在 Linux 中使用 bzip2 工具压缩及解压缩.bz2文件. bzip2 是一个非常有名的压缩工具,并且在大多数主流 Linux 发行版上都有,你可以在你的发行版上用合适的命令来安装它

Linux中利用两个现存文件,生成一个新的文件

Linux中利用两个现存文件,生成一个新的文件的方法 前提条件:每个文件中不得有重复行 1. 取出两个文件的并集(重复的行只保留一份) cat file1 file2 | sort | uniq 2. 取出两个文件的交集(只留下同时存在于两个文件中的文件) cat file1 file2 | sort | uniq -d 3. 删除交集,留下其他的行 cat file1 file2 | sort | uniq –u

redhat linux中如何播放mp3音乐文件?

redhat linux中如何播放mp3音乐文件? 自带的xmms 不能播放MP3(无声),要安装一个rpm 包: rpm -ivh xmms-mp3-1.2.7-13.p.i386.rpm 打开xmms,ctl-p,在font 栏中先在上半部的小框内打勾,再选择"fixed(misc) gbk-0 13"号字体即可显示中文歌曲名. 在音频输出插件中选择 "开放音频系统驱动程序1.2.7 [lioOSS.so],即可正常播放MP3文件.

Linux中如何查找或删除正在使用某文件的进程?

Linux中如何查找或删除正在使用某文件的进程? 我们可以使用fuser命令,示例如下: fuser filehttp://www.aliyun.com/zixun/aggregation/11696.html">namefuser -k filename fuser命令是用来显示所有正在使用着指定的file, file system 或者 sockets的进程信息. fuser的其他有用的参数 -a Show all files specified on the command line

Linux终端上统计指定类型文件的数目的方法

  下面我们来看看在一个目录中用 ls,grep 和 wc 命令统计指定类型文件数目的技巧.命令之间的交互通过命名管道完成. grep – 用户根据给定模式或正则表达式进行搜索的命令. wc – 用于统计行.字和字符的命令. 统计普通文件的数目 在 Linux 中,普通文件用符号 - 表示. 代码如下: tecmint@tecmint ~/Linux-Tricks $ ls -l | grep ^- | wc -l 7 统计目录的数目 在 Linux 中,目录用符号 d 表示. 代码如下: te

linux下svn提交忽略某些文件、目录(ignore属性

 svn也是一个目录同步了我们可以用它来做版本控制了,下面一起来看看关于linux下svn提交忽略某些文件.目录(ignore属性),希望例子对各位有帮助.     在项目中,有些文件是不需要将本地的提交到svn仓库,例如config.php文件,特别是定义了绝对路径的,或者是缓存目录.图片目录等,所以为了方便,在每次提交svn的时候,都需要忽略这些文件.目录,避免不慎提交引起团队中其他成员需要修改其本地的版本. linux下用svn propedit svn:ignore命令可以编辑忽略文件.

Linux服务器上用iScanner删除网页恶意代码的方法

  Linux服务器上怎么用iScanner删除网页恶意代码?这篇文章主要介绍了Linux服务器上用iScanner删除网页恶意代码的方法,iScanner为Ruby编写,所以服务器上要首先安装Ruby解释器,需要的朋友可以参考下 第一步:安装 首先要确保服务器上已经安装了Ruby 代码如下: #ruby -v //查看ruby的版本信息 如果服务器上没有安装,可以通过yum或者apt-get安装ruby(根据自己服务器系统选择对应的方法安装) 代码如下: #yum install ruby /

常用的Linux删除文件恢复工具的使用方法

然后使用相关工具进行恢复.本文以 Ubuntu 12.04 平台为例介介绍四个(foremost.extundelete.testdisk 和 phtorec)常用的 Linux 删除文件恢复工具的使用方法. Linux 文件恢复的原理 inode 和 block 首先简单介绍一下 Linux 文件系统的最基本单元:inode.inode 译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是 inode,另一部份是 block,block 是