Ubuntu:如何在不重新安装的情况下解密主目录、交换(基本上所有内容)?

Ubuntu:如何在不重新安装的情况下解密主目录、交换(基本上所有内容)?

我刚刚遇到了 Ubuntu Server 10.04 中加密主目录的问题。

虽然我知道一种解决方法,但我只是想彻底删除所有内容的加密。

有什么提示如何在没有完整备份和重新安装的情况下做到这一点?

答案1

本指南是一项非常重要的手术,只有您对命令行有信心才能遵循它 - 一些错误可能会导致丢失所有数据。

您必须将所有文件从主目录复制到其他地方,然后在关闭加密后将它们复制回来,但您不必重新安装。假设您在 有一个外部驱动器/media/disk-1。您可以使用

$ cp -a /home/user /media/disk-1/

执行-a递归操作,并且执行更多操作。请确保备份所有用户,因为我们稍后会删除加密副本。

然后您需要卸载 ecryptfs 挂载,删除所有加密文件,停止自动挂载并将所有文件复制回来。如果您使用 GUI 登录,这将造成严重破坏,因此我要么注销,然后登录其中一个控制台(按 Ctrl-Alt-F1 访问一个控制台),要么从实时 CD/USB 启动来执行此操作。无论哪种方式,请确保您的备份是安全的。

如果您使用的是实时 CD,则需要安装磁盘,并且以下命令中的路径将相应更改。

因此,卸载 ecryptfs 挂载。(如果您正在使用实时 CD,则无需执行此步骤)。

$ ecryptfs-umount-private

接下来,删除所有旧的加密文件,腾出磁盘空间。在执行此操作之前,请确保您的备份是安全的。如果您有超过一半的磁盘空闲空间,您可以等到确定新版本可以正常工作后再执行此步骤。但是,如果您只有一点磁盘空闲空间,则需要在复制文件之前执行此操作。

$ sudo rm -rf /home/.ecryptfs

接下来我们需要停止自动挂载。因此编辑文件

/etc/pam.d/common-auth 
/etc/pam.d/common-password 
/etc/pam.d/common-session 
/etc/pam.d/common-session-noninteractive

pam_ecryptfs并通过在行首添加 来注释掉提及的行#。例如,common-session现在将包含

#session    optional    pam_ecryptfs.so unwrap

现在您可以将所有文件复制回来

$ cp -a /media/disk-1/user /home

然后重新启动,您应该没有加密文件夹,并能够启用自动登录。如果您/home/.ecryptfs之前没有删除,您应该在确信一切正常后删除。

答案2

您面临的问题是文件系统已加密。解密磁盘区域时,您不是一次解密一个文件。- 因此,如果不备份文件并进行恢复,就不可能“关闭”加密。

答案3

在阅读时,我想到了另一种可能对您有用的策略,具体取决于您的问题。如果问题是您(以 root 身份)需要在用户未登录时访问用户文件,那么您可以阻止在注销时卸载加密文件。

ecryptfs 使用 中的文件/home/.ecryptfs/user/.ecryptfs/来控制操作。您将看到 包含文件auto-mountauto-umount。它们的大小均为零。我很确定,如果您

$ sudo rm /home/.ecryptfs/*/.ecryptfs/auto-umount

然后,用户的目录将不会在注销时卸载,并且仍可访问。但是磁盘格式仍将被加密,因此您不必担心旧磁盘落入坏人之手(前提是您安全地删除/home/.ecryptfs/*/.ecryptfs/*)(和/tmp/var/和交换...)

相关内容