如何以安全的方式删除文件?

有没有办法确保删除的文件无法恢复?

如您所知,通过按shift-del或使用垃圾删除文件并不意味着文件永远消失。 它驻留在计算机的某个地方。

在日常生活中,执法人员或盗贼使用恢复计划来披露我们的私人数据或其他内容。

他们可以恢复驻留在硬盘,RAM,甚至USB中的所有数据。

为了保护我们免受这些人的伤害,应该怎么做? 应该使用哪个程序?

注意:我不想要像第一次使用恢复程序那样的答案,然后用shred擦除该文件。 只需一个程序,我想删除计算机上所有未使用/删除的文件。

切碎

此命令行工具已从Ubuntu中的核心实用程序安装,以使用Gutman方法安全地擦除和覆盖单个文件。

快速切碎

shred -vzn 0 /dev/sdc1 

通过在一次迭代中用0秒覆盖所有内容来擦除整个分区。 如果没有法律方面需要另一个程序,那么这样做最有可能安全地删除您的私人数据Craig Wright讲座计算机科学,2008,5352,243-257

安全切碎

 shred -vzn 3 /dev/sdc1 

使用随机数的3次迭代擦除整个分区。 另外(选项-z )这会写零以隐藏最后的碎化过程。 这将比快速方法长4倍。

注意:通过粉碎分区,我们将用0或随机数覆盖此分区。 因此,它可以永久有效地删除该分区上的所有文件系统缓存。 这也可用于删除已删除文件的不需要的残余。 我们要保留的文件必须在粉碎之前备份。


擦拭 安装擦除

此命令行实用程序提供了更多选项以及除单个文件之外擦除目录的可能性。

 wipe filename wipe -r dirname 

有关日记文件系统和SSD的其他说明:

  • 在阅读单个文件时,请阅读链接联机帮助页中有关日记文件系统中仍可恢复的备份所引起的安全问题的说明。 即使使用日记文件系统,覆盖整个分区而不是单个文件也会有效地擦除所有数据。

  • 擦除固态磁盘(SSD)上的数据只能通过多次迭代覆盖整个驱动器 (不仅是单个分区)来完成。 某些SSD可能具有内置function来擦除数据,但这可能并不总是有效(请参阅注释中的此链接 )。 目前,没有关于擦除过程或安全删除所有可用SSD上的所有数据残余所需的擦除迭代次数的一般建议。

这些选项可以添加到Nautilus和Thunar的上下文菜单中。

  • 在Thunar中,打开“编辑”,然后“配置自定义操作”

添加(加号)

名称“Shred File”

描述你喜欢什么

行动“shred -u%f”

同样wipe

  • 对于Nautilus,请看这个问题和那些相关的问题

选择“外观条件”并选择“其他文件”

没有一个命令可以运行,可以轻松清理所有已删除的文件。 但是,您可以采取一些措施来减少将来遭受此类攻击的漏洞。

正如其他人所说,使用像shred或srm这样的工具允许你通过实际覆盖它来删除特定文件,而不是仅仅从文件系统中删除它。 如果您感觉粗体,可以使用shredsrm替换rm命令以安全地删除文件。 这意味着每当您(或其他程序)尝试使用rm删除某些内容时,安全删除命令将会运行。

但是,如果您使用的是固态磁盘,甚至是某些较新的机械磁盘,则碎片和其他基于覆盖的方法可能无效,因为磁盘实际上可能无法写入您认为正在编写的位置( 源 )。


全盘加密

更方便的选择是全盘加密。 如果您使用备用安装程序 ,Ubuntu可以为您自动设置完全加密的磁盘,但您也可以自己自定义和配置设置。 一旦安装,加密对您来说几乎是不可见的:在您输入密码短语(确保选择一个好的,长的密码)后,当计算机启动时,一切看起来和感觉就像普通的Ubuntu一样。

您还可以使用Ubuntu的磁盘工具加密外部媒体,如USB驱动器。 设置加密的外部磁盘就像在格式化磁盘时检查“加密底层文件系统”框一样简单。 您甚至可以将密码存储在(加密的)密钥环上,这样您就不必在每次将磁盘插入计算机时输入密码。

如果你的整个磁盘 – 以及所有可移动媒体 – 都是加密的,那么就不用担心了。 小偷或警察需要在计算机打开时(或者在非常好的情况下将其关闭一两分钟内)刷一下才能访问您的数据。 如果您在不使用计算机时hibernate(而不是暂停),那么您应该非常安全。

如果您需要完全销毁所有数据,则无需对整个磁盘进行Gutmann擦除 。 只需覆盖磁盘的最开头,即可销毁加密卷的标头。 与常规文件系统不同,这实际上使得无法恢复数据。


那么,你如何从当前的设置转变为安全加密的磁盘? 改造当前安装的操作系统以使用加密磁盘是一项相当大的挑战。 最简单的方法是备份所有数据和设置,然后使用加密磁盘重新安装。 备份时,请确保将数据备份到加密的外部驱动器,但不要将密码保存在密钥环中。

在备份完所有内容后,您可能需要积极擦除硬盘驱动器,以确保将来不会恢复任何现有数据。 如果您正在使用SSD,那么这个过程就更具挑战性,因此根据您希望在此过程中投入多少资金,可能值得销毁您当前的磁盘(一个具有挑战性的主张 )并从一个新的磁盘开始。

重新安装操作系统时,如果您尚未积极擦除磁盘,则应确保完全填充新的加密分区,这将覆盖所有旧数据。 恢复备份后,您可能需要积极擦除备份磁盘的启动,以销毁加密标头,以便无法再次恢复。

更新:如果您尚未删除要恢复的文件,请使用接受的答案。 但是,如果您已经删除了文件[s],那么这是我所知道的下一个最佳方法。

如果我读了你,你想删除所有以前删除的文件。 这是一个简单的方法:

 $ dd if=/dev/zero of=/path/to/mounted/partition/tmp_file bs=1M count=999999999999 

让它运行直到它出现问题,直到它出现磁盘写入错误[空间不足]。 然后删除文件! 这样做只是用000s填满你的空磁盘,所以你以前的所有文件都被覆盖了。 确保立即删除该文件,否则您将不会有任何磁盘。 如果你真的是偏执狂,你可能想要这样做几次。 或者如果你想随机写入你的磁盘,我建议用/dev/urandom替换/dev/zero

但是,这需要更长的时间,所以我会在一夜之间运行它。 此外,如果您想要一个进度表,请改为:

 $ free=$( df {PARTITION OR MOUNTPOINT} |awk '{print $3}'|tail -1 ) $ dd if=/dev/zero bs=1M count=999999999999 | pv -s "$free" > /path/to/mounted/partition/tmp_file 

首先你用du,awk和tail获得你的可用磁盘空间,然后使用dd获取/ dev / zero,将其传递给pv代表“管道查看器”,将所有内容重定向到tmp_file再次,之后删除文件。 $ rm tmp_file

无论如何,希望有人发现这有用! 🙂

首先,在终端上删除rm文件或在nautilus上删除shift-delete。 更好的是,使用安全删除工具包中的srm

您可以安装如下安全删除工具:

 apt-get install secure-delete 

其次,使用sfill擦除磁盘上未使用的空间:

 sudo sfill -f  

这需要一些时间,因为它使用加密技术来填充磁盘。

警告 :这是通过整个文件系统,你是root用户。 小心使用!

这将创建一个文件,用于清除所有以前存在的数据。 该文件将在创建。

这个GUI程序BleachBit (它也在源代码中)。 BleachBit Sourceforge页面上的更新(deb文件)版本。

除了简单地删除文件外,它还包括高级function,例如粉碎文件以防止恢复, 擦除可用磁盘空间以隐藏其他应用程序删除的文件痕迹。

“BleachBit可以快速释放磁盘空间并不知疲倦地保护您的隐私。免费缓存,删除cookie,清除Internet历史记录,粉碎临时文件,删除日志以及丢弃您不知道的垃圾。专为Linux和Windows系统设计,它擦拭干净90个应用程序,包括Firefox(吸尘使其更快),Internet Explorer,Adobe Flash,谷歌浏览器,Opera,Safari等。“ (来自http://bleachbit.sourceforge.net/ )

BleachBit有几种先进的清洁剂:

  • 清除内存并在Linux上交换
  • 在Linux上删除损坏的快捷方式
  • 删除Firefox URL历史记录而不删除整个文件 – 使用可选的碎化
  • 查找广泛分散的垃圾,例如Thumbs.db和.DS_Store文件。
  • 删除OpenOffice.org最近的文档列表而不删除整个Common.xcu文件
  • 覆盖可用磁盘空间以隐藏以前的文件
  • 真空Firefox,谷歌浏览器,Liferea,Thunderbird和Yum数据库:缩小文件而不删除数据以节省空间并提高速度
  • 通过删除整个文件,从.ini和JSON配置文件中手动删除私人信息

有关如何使用Bleachbit删除安全特定文件和文件夹的详细信息,请参阅此答案 。

如果你想要一个不能被病态痴迷的个人所阻挠的解决方案,那么你应该考虑以下方面的一些组合(受货币资源限制):

  • 消磁 – 磁性擦除硬盘
  • 物理上禁用硬盘 – 即工业打孔机
  • 酸浴< - 你不能从一堆粘液中获取一些东西。

这些解决方案的成本和独创性极大。 一些:

我会说解决方案是这里给出的几个答案的组合。 对于仍在使用的已删除文件和分区,我同意Matt。

然后,对于未来,我建议开始使用安全删除工具而不是简单的’rm’。

最后,当可以重新格式化分区时,应考虑加密分区的选项。 也许使用一些提供合理可否认性的方法,如Truecrypt

适用于SSD和其他闪存存储介质

SSD和许多其他闪存存储介质使用称为“耗损均衡”的技术,该技术根据先前写入周期的数量重新分配未使用的存储单元块,以延长驱动器的使用寿命。 因此,重写块范围不能像安全地(甚至有效地)那样擦除存储内容,就像硬盘驱动器一样。 另一方面,闪存存储允许更快,更有效地安全擦除块,块范围或整个驱动器。

擦除整个驱动器

您应该使用驱动器的安全擦除function。

  1. 确保驱动器安全性支持安全的erause 1并且不会“冻结” 。 如果是,则暂停和恢复计算机可能会有所帮助。

     $ sudo hdparm -I /dev/sdX | grep frozen not frozen 

    (已过滤)命令输出表示此驱动器支持安全擦除,“未冻结”,您可以继续。

  2. 设置用户密码 (本例中为Eins )。 此密码也被清除,确切的选择无关紧要。

     sudo hdparm --user-master u --security-set-pass Eins /dev/sdX 
  3. 发出ATA安全擦除命令。

     sudo hdparm --user-master u --security-erase Eins /dev/sdX 

有关完整说明(包括故障排除),请参阅Linux内核wiki中的ATA安全擦除文章 。

( 来源 )

如果步骤1中的命令输出为空,则驱动器不支持安全擦除,但仍可支持以下部分所需的TRIM命令。

擦除驱动器分区

blkdiscard(8) 2可以安全地擦除块设备, 如果驱动器支持它 1

 sudo blkdiscard --secure /dev/sdXN 

其中/dev/sdXN是块设备节点的路径,指向要擦除的驱动器或分区。


1如果您的驱动器位于带有USB或FireWire连接的shell内,则即使封闭的驱动器支持,翻译芯片组也可能会阻止某些可选function(如安全擦除和TRIM)的支持。

2自Ubuntu Xenial Xerus(16.04)以来默认可用并安装。

我使用truecrypt文件图像来获取这些基本数据。 我不方便,免费,跨平台,我不需要一个完整的磁盘,也不需要使用任何额外的软件来“真正删除”该文件。

只需确保您拥有强密码并对图像文件进行备份。 我把备份放在云端。

  1. 第一个选项是shred。 关于Shred的先前答案缺少一些必要的细节。 如果在分区上运行shred(如在sdc5的示例中),则不会克服文件系统缓存,快照和sdc5 ,并且数据将保留,其中可能存在大量数据。

    为了使shred有效,特别是在现代SSD等上,您必须在设备而不是分区上运行它。 这将是/dev/sdc …末尾没有数字(分区号)。

    如果要清理的驱动器是计算机的主要设备,则需要从实时USB执行此操作。 在这种情况下,您最好在创建时为实时USB添加持久性,以便您可以下载一些额外的工具来正确地完成工作。

    运行命令: sudo shred -vfxz /dev/sdcsda或设备名称。 如果您不确定名称,请打开磁盘或GParted以识别您的设备,或在终端中运行命令lsblk并在那里识别您的设备名称。

    fx字母添加到命令非常重要,因为f =强制权限和x =文件的确切大小。 如果没有这些,您可能会错过需要读取或写入权限的数据,或者在文件向上舍入到块大小时丢失数据。

    您可以通过添加-n (您想要的数字)来添加所需数量的写入通行证。 示例: sudo shred -vfxz -n 5 /dev/sdc

    这是擦除驱动器的第一个停靠点。 它可能有助于运行类似的工具,如灌木,安全删除和nwipe。 它们都以相同的方式工作,具有非常相似的命令和略有不同的方法和模式。 转到Linux手册页或Google手册,快速熟悉如何使用这些命令。 您不太可能需要超过标准的4个碎片通道,但如果它很重要,您可能会更加努力,因为它可能会有所帮助。

  2. 你的RAM可能有数据。 安装secure-delete后,运行sdmem命令。 这将擦除你的RAM内存。 然而,您填充RAM的第一个数据,以及长时间停留在RAM中的任何数据,可能都会留下痕迹。

    购买新的RAM(或HD / SSD)时,最好将驱动器填满几次。 你可以使用shred,但dd在这里可能更好。 命令:

     sudo dd if=/dev/urandom of=/dev/ # (insert your device partion name) 

    如果要提高安全性,最好使用RAM在使用敏感数据之前重复此过程,然后尽快从RAM中擦除敏感数据。 正是这个时间留在原地,主要是它留下痕迹的能力。

    剩下要做的就是创建分区或安装下一个发行版。

  3. 加密 – 人们经常将此视为一种可靠的方法,但如果您要继续使用硬盘或将其传递给其他人,则这不是一种有效的选择。 关于法律问题,未能解锁加密设备通常不是一种选择,可以在许多地方推定有罪或实际违法行为。 它可能会阻止小偷等等(窃取数据只有大声笑)。

    另请注意,加密的主文件夹是非常不同的,并且不会保护您的计算机上的物理检查,它本质上是为了在线/系统安全,并且可以规避。

  4. 如果丢弃设备 – 用碎片擦拭后,然后使用包含特殊字符(如*等)的长密码加密以打破密码的字母和数字,再次使用碎片,但您只需指定驱动器的前10gig (取决于大小,但这是一个很大的安全号码)。 示例: sudo shred -vfxzs10G /dev/sdc这比在这些情况下粉碎整个驱动器更快更有效。

    然后可以肯定的是,拿出硬盘和RAM,RAM很容易抢购和破坏,SSD也是如此。 你可以发挥创造力,释放那些偏执的能量,同时打破它们。