我已经知道使用shred
会以无法恢复的方式覆盖我的文件。但是shred
不能用于隐藏目录。
错误信息:
无法打开写入:是一个目录
我无法使用硬盘驱动器/重整器,因为dd
我不拥有硬盘驱动器(我只能通过 ssh 访问它)。
我的问题是,在删除所有实际文件后,我有用的命名文件夹名称仍然存在。这些名字告诉观众里面会是什么。如果我删除了一个空文件夹,它仍然可以恢复吗?有shred
for 目录吗?
答案1
答案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
推荐答案中的包。