如何安全删除目录而不留下痕迹?

如何安全删除目录而不留下痕迹?

我已经知道使用shred会以无法恢复的方式覆盖我的文件。但是shred不能用于隐藏目录。

错误信息:

无法打开写入:是一个目录

我无法使用硬盘驱动器/重整器,因为dd我不拥有硬盘驱动器(我只能通过 ssh 访问它)。

我的问题是,在删除所有实际文件后,我有用的命名文件夹名称仍然存在。这些名字告诉观众里面会是什么。如果我删除了一个空文件夹,它仍然可以恢复吗?有shredfor 目录吗?

答案1

唯一安全的方法是

  1. 将所有文件复制到不同的文件系统。
  2. 卸载文件系统。
  3. 擦除包含文件系统的分区或卷。
    这就是您在问题中提到的“硬盘驱动器爆炸器”。不要使用ddcat同样好。您可以远程执行此操作,除非这是根文件系统,在这种情况下您想要执行的操作是不可能的。
  4. 重新创建文件系统并恢复文件。

我不会重复霜舒茨的精彩解释为什么不太严格的方法不能可靠地擦除您想要擦除的内容。

管理此问题的最佳方法是预防性地:加密数据(使用加密文件名的文件系统,例如 encfs 或 ecryptfs)。当您想要擦除数据时,只需确保销毁密钥的所有副本即可。

答案2

所以你想隐藏目录名称......一个实验。

# truncate -s 1G foobar
# losetup -f --show foobar
/dev/loop0
# mkfs.ext4 /dev/loop0
# mount /dev/loop0 /mnt/tmp
# cd /mnt/tmp
# mkdir collywobbles
# sync
# mv collywobbles shriggelfigs
# sync
# mv shriggelfigs flapjacks
# sync
# rmdir flapjacks
# cd ..
# umount /mnt/tmp

因此,基本上我们有一个空的文件系统,在其中创建了一个目录,重命名了两次,最后将其删除。什么是可恢复的?

# strings /dev/loop0 | grep -E '(collywobbles|shriggelfigs|flapjacks)'
flapjacksles
shriggelfigs
flapjacksles
shriggelfigs
collywobbles
shriggelfigs

啊。所有的。伟大的。虽然flapjacks至少看起来已经覆盖了两个collywobbles,但把它变成了flapjacksles因为flapjacks稍微短了一点......

如何安全删除目录而不留下痕迹?

您无法安全地删除单个文件,或者确实无法正确删除目录名称。最好的情况是,您可以覆盖文件系统仍然知道的文件当前表示的内容。曾经创建过该文件的副本吗?曾经编辑并保存过文件吗?太糟糕了,文件系统本身可能不再知道有一个副本,因为它已被删除,并被同名的文件替换。

可以shred存档。您还可以使用shred文件系统的整个可用空间。这对于消除大约 99% 的情况很有好处。如果这还不够好,你就必须全力以赴。在你完成全部工作之前,你永远不知道它是否真的消失了。

复制所有数据。shred -v -n 1 /dev/thedisk。将数据复制回来(仅复制您想要保留的位)。

答案3

如果 OP 使用 Debian / Ubuntu 或其变体,请查看这个询问 Ubuntu 帖子,尤其是secure-delete推荐答案中的包。

相关内容