当前位置: 首页 > news >正文

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 - 覆盖文件来隐藏它的内容

你可以在 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 – 在 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 – 在 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 – 安全 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中国”

相关文章:

  • 再会Java
  • 自动化运维工具SaltStack详细部署
  • PHP MySQL
  • 算法之选择排序算法
  • 我会采更多的雏菊
  • c语言中字符串函数的使用
  • 利用jquery编写加法运算验证码
  • 更改计算机名称,影响TFS之前映射的工作区 使用。
  • mysql/Java服务端对emoji的支持
  • 教你如何安装 Android L
  • 创意歌曲:我是一段死代码
  • Elasticsearch 中文搜索搭建
  • 潜伏 11 年之久,Linux 惊现高危内核漏洞 Phoenix Talon
  • 权当开篇——Linux学习之路(一)
  • ReSharper Ultimate 2017 下载地址及破解方法
  • 【Linux系统编程】快速查找errno错误码信息
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • ECMAScript6(0):ES6简明参考手册
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • java第三方包学习之lombok
  • leetcode46 Permutation 排列组合
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • Python - 闭包Closure
  • spring boot下thymeleaf全局静态变量配置
  • 高性能JavaScript阅读简记(三)
  • 技术发展面试
  • 前端技术周刊 2019-01-14:客户端存储
  • 如何实现 font-size 的响应式
  • 用Canvas画一棵二叉树
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • !!Dom4j 学习笔记
  • #{}和${}的区别是什么 -- java面试
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • (52)只出现一次的数字III
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (6)添加vue-cookie
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (二)丶RabbitMQ的六大核心
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (十)T检验-第一部分
  • (四)库存超卖案例实战——优化redis分布式锁
  • (一)Linux+Windows下安装ffmpeg
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .NET CF命令行调试器MDbg入门(一)
  • .NET CLR基本术语
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Framework与.NET Framework SDK有什么不同?