我刚刚遇到了 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-mount
和auto-umount
。它们的大小均为零。我很确定,如果您
$ sudo rm /home/.ecryptfs/*/.ecryptfs/auto-umount
然后,用户的目录将不会在注销时卸载,并且仍可访问。但是磁盘格式仍将被加密,因此您不必担心旧磁盘落入坏人之手(前提是您安全地删除/home/.ecryptfs/*/.ecryptfs/*
)(和/tmp
和/var/
和交换...)