Bar*_*ter 1 ubuntu encryption home-directory ecryptfs
我刚刚在 Ubuntu Server 10.04 中遇到了加密主目录的问题。
虽然我知道一种解决方法,但我只想从所有内容中完全删除加密。
任何提示如何在没有完整备份和重新安装的情况下做到这一点?
本指南是一项相当大的手术,只有在您对命令行有信心的情况下才能遵循它 - 一些错误可能会导致丢失所有数据。
您必须将所有文件从您的主目录复制到其他地方,然后在关闭加密后将它们复制回来,但您不必重新安装。因此,假设您在/media/disk-1. 你可以备份
$ cp -a /home/user /media/disk-1/
Run Code Online (Sandbox Code Playgroud)
在-a做递归和多一点。确保备份所有用户,因为我们稍后将删除加密副本。
然后你需要卸载 ecryptfs 挂载,删除所有加密文件,停止自动挂载并将所有文件复制回来。如果您使用 GUI 登录,这将造成严重破坏,因此我要么注销,然后登录其中一个控制台(按 Ctrl-Alt-F1 访问一个),要么从 Live CD/ USB 记忆棒来做到这一点。无论哪种方式,请确保您的备份是安全的。
如果您使用的是 Live CD,则需要挂载磁盘,以下命令中的路径将相应更改。
因此,卸载 ecryptfs 挂载。(如果您使用的是 Live CD,则无需执行此步骤)。
$ ecryptfs-umount-private
Run Code Online (Sandbox Code Playgroud)
接下来通过删除所有旧的加密文件在磁盘上腾出空间。在执行此操作之前,请确保您的备份是安全的。如果您有一半以上的磁盘备用,您可以离开这一步,直到您确定新版本可以正常工作。但是,如果您只有一点磁盘备用,那么您需要在将文件复制回来之前执行此操作。
$ sudo rm -rf /home/.ecryptfs
Run Code Online (Sandbox Code Playgroud)
接下来我们需要停止自动挂载。所以编辑文件
/etc/pam.d/common-auth
/etc/pam.d/common-password
/etc/pam.d/common-session
/etc/pam.d/common-session-noninteractive
Run Code Online (Sandbox Code Playgroud)
并pam_ecryptfs通过#在行的开头放置 a 来注释掉提到的行。例如,common-session现在将包含
#session optional pam_ecryptfs.so unwrap
Run Code Online (Sandbox Code Playgroud)
现在您可以将所有文件复制回来
$ cp -a /media/disk-1/user /home
Run Code Online (Sandbox Code Playgroud)
然后重新启动,您应该没有加密文件夹,并且能够启用自动登录。如果您之前没有删除/home/.ecryptfs,那么一旦您确信一切都按预期工作,就应该这样做。