如何停止使用内置的主目录加密?

我有一个新的Ubuntu 10.04安装,其中包含加密的家目录(使用Ubuntu安装程序提供的内置加密功能)。
最简单的方法是什么?停止使用加密(即永久解密我的家目录)。
这给我带来了内核更新方面的问题,我只是想减少与这个安装相关的所有麻烦。
10个回答

在网上搜索了一下,我找到了这篇文章
不要提起一个旧的帖子,但如果有人按照这些说明遇到错误,这是我做的事情。
备份您登录时的主目录 sudo cp -rp /home/user /home/user.backup 1.1 确认您的主目录备份是否完整!!! - 通过grub以root身份重新启动 - 删除您的主目录 rm -rf /home/user - 移除软件包 apt-get remove ecryptfs-utils libecryptfs0 - 还原您的主目录 mv /home/user.backup /home/user - 重新启动 - 删除任何 .Private .ecryptfs 文件夹 rm -rf ~/.Private rm -rf ~/.ecryptfs - 太棒了!
对我有效。主文件夹文件权限保持完好,并且不会影响Dropbox或git存储库。我新安装的Ubuntu 9.10上的某些原因无法执行第一条命令。只需确保在使用rm -rf时仔细考虑整个过程。 我想这样发布不仅是为了记录,还有其他遇到问题的人参考。

一些注意事项

  • 通过 grub 切换到 root 用户并重新启动对我来说有点不清楚;我没有重新启动,只是切换到使用 root(另一个带有sudo权限的用户账户同样有效)。
  • 在移除软件包ecryptfs-utilslibecryptfs0之前,我需要移除/home/.ecryptfs/<我的用户名>。(它抱怨ecryptfs-utils正在使用中。)

除此之外,这对我来说可行。虽然远非简单,但如果有更好的解决方案,请随时发布!


我会接受这个,因为它对我有效,但是就像我说的,随时可以发表更简单或更好的东西! - Jonik
3这对我在12.10上也起作用了。我还需要先删除/home/.ecryptfs/<myusername>。另外,我不得不在根控制台中重新挂载/,但我想这是另外一个故事了。谢谢! - Constantinius
1也适用于12.04版本。唯一需要注意的是,如果你切换到root用户(sudo su),而不是通过grub重启到root用户,那么这个方法也是可行的。但是在使用rm -rf命令之前,你需要先移出/home/user目录(例如,使用cd /home命令),并执行umount /home/user来卸载home目录。在删除这两个软件包之前,还需要执行rm -rf /home/user.backup/.ecryptfs命令。 - laurent
3这在SSH上更容易完成,没有GRUB要处理或尝试避免任何挂载。只需要小心删除/home/.ecryptfs。显然它有一个符号链接指向/home/username。我丢失了所有的数据。 - htoip
这个方式怎么样?http://virtually-a-machine.blogspot.com/2010/08/howto-disable-ecryptfs.html - Tebe
2对于第一步,如果你遇到错误:/home/<username>/.gvfs: 无法访问:权限被拒绝,你可以随时使用rsync命令:rsync -avz --exclude '*.gvfs' /home/<username> /home/<username>.backup - tir38
通过grub重新启动到root,按照以下说明操作:http://askubuntu.com/questions/92556/how-do-i-boot-into-a-root-shell - Theron Luhn
我在启用网络(也就是文件系统的读写访问)时遇到了一些问题,但以下方法有效:https://bugs.launchpad.net/ubuntu/+source/friendly-recovery/+bug/1061239/comments/5 - Theron Luhn
请注意,家目录加密与整个驱动器加密是分开的,至少在服务器16.04版本中是如此。因此,您可以安全地删除ecryptfs-utils和libecryptfs0而不会影响整个磁盘的加密。 - simpleuser
在删除我的主目录之前,我必须执行umount /home/myusername/.Private。而要做到这一点,我不得不执行killall -u myusername - sudo

希望这个能帮到你(参见ecryptfs-setup-private(1)):
$ ecryptfs-setup-private --undo

输出声明:

如果您想要删除eCryptfs私有目录设置,您需要非常小心地手动执行以下操作:
1. 获取您的私有目录挂载点 $ PRIVATE=`cat ~/.ecryptfs/Private.mnt 2>/dev/null || echo $HOME/Private`
2. 确保您已将所有相关数据移出您的$PRIVATE目录
3. 卸载您的加密私有目录 $ ecryptfs-umount-private 4. 使您的私有目录可写 $ chmod 700 $PRIVATE
5. 删除$PRIVATE, ~/.Private, ~/.ecryptfs 注意:这是非常永久的,请非常小心 $ rm -rf $PRIVATE ~/.Private ~/.ecryptfs
6. 卸载工具(这取决于您的Linux发行版) $ sudo apt-get remove ecryptfs-utils libecryptfs0

谢谢。我已经解决了,但我想这对其他人也有用。 - Jonik
@Jonik 在内核更新后,你能成功登录到 .ecryptfs/jonik/.Private 吗?还是你备份并取消了加密? - isomorphismes
4这仅适用于加密目录“〜/私人”,而不适用于加密主目录,正如OP所述。请参阅https://help.ubuntu.com/community/EncryptedHome以了解区别。 - lmeurs

第一件事:备份你的主目录。

我再怎么强调也不为过...基本上解密就相当于重置(rm -rf)你的主目录,而这个目录实际上是被挂载隐藏起来的。

第二步:退出任何桌面管理器并进入虚拟控制台(Ctrl + Alt + F3)。

最后,有关详细信息:

ecryptfs-setup-private --undo

如果您想要移除您的eCryptfs私有目录设置,您需要非常小心地手动执行以下操作:
  1. 获取您的私人目录挂载点 PRIVATE= cat ~/.ecryptfs/Private.mnt 2>/dev/null || echo $HOME/Private

  2. 确保您已将所有相关数据移出您的$PRIVATE目录

  3. 卸载您的加密私人目录

    ecryptfs-umount-private
    
  4. 使您的私人目录可写

    chmod 700 $PRIVATE
    
  5. 删除$PRIVATE~/.Private~/.ecryptfs 注意:这是非常永久的,请非常小心

      rm -rf $PRIVATE ~/.Private ~/.ecryptfs
    
  6. 卸载工具

     sudo apt-get remove ecryptfs-utils libecryptfs0
    

我要说第五步有点错误:没有必要删除$PRIVATE,对我来说那是我的主目录....

在删除.Private.ecryptfs之后,只需恢复你的主目录:]


5如果你已经加密了超过一半的硬盘空间,那该怎么办呢?有没有其他方法可以解决,而不需要购买另一个硬盘? - isomorphismes
@hhlp 很有趣,你不需要删除你的$PRIVATE。那不就是你的用户主目录吗?这是否意味着一个人不需要删除自己的目录,只要备份一直很重要? - XavierStuvw

这些步骤适用于服务器环境。
  1. 备份您的主目录

    sudo cp -rp /home/$USER /home/$USER.backup
    
  2. 确认是否已备份所有内容

    sudo ls -al /home/$USER.backup
    
  3. 卸载主文件夹,因为加密程序通常将其挂载到挂载点,例如/home/$USER,也称为$HOME。您可以通过运行df -h $HOME来确认您的挂载点。您需要cd /tmp(或其他非$HOME目录)才能卸载$HOME

    cd /tmp
    sudo umount /home/$USER
    
  4. 删除旧的主文件夹

    sudo rm -rf /home/$USER
    
  5. 删除加密程序文件

    sudo rm -rf /home/$USER.backup/.ecryptfs
    
  6. 从系统中移除加密工具

    sudo apt-get remove ecryptfs-utils libecryptfs0
    
  7. 将未加密的主文件夹恢复到原始路径

    sudo mv /home/$USER.backup /home/$USER
    
  8. 将恢复的文件夹的所有权更改回您的用户

    sudo chown -R $(id -u):$(id -g) /home/$USER
    
  9. 注销/登录,以确保所有用户相关的内容得到正确重新启动(或在您记住自己所做的操作时出现错误)。


太棒了!非常感谢你提供这么清晰简洁的指南。帮了我大忙! - James Lalor
我还用sudo rm -rf /home/.ecryptfs/$USER清理了/home/.ecryptfs/$USER目录。 - JimB

在我意识到其他地方提到的最繁琐的步骤并不必要之后,我决定再添加一个指南到长列表中。
我的指南不需要重新启动,并且我已经成功地通过SSH完成了它。如果机器上有其他eCryptfs挂载,它也应该能够正常工作。
唯一不明显的要求是能够以具有sudo访问权限的另一个用户身份登录。
  1. 以加密的主目录用户(在本指南中称为user)的身份登录。

  2. 为了使以下步骤中的路径简单对称:

    cd /home
    
  3. 将解密后的主目录内容复制到另一个目录。

    sudo cp -rp user user.new
    
  4. 注销(exitlogout)。以另一个sudoer的身份登录。

  5. 检查eCryptfs挂载是否已卸载。 不要手动umount,这可能会导致数据丢失!(我自己有经验。我正在使用另一个已登录user的SSH会话。)

    mount | grep ecryptfs
    

    输出必须为空。或者,如果有其他eCryptfs挂载,则不能包含/home/user

  6. 就像第2步一样。

    cd /home
    
  7. 将副本标记为未使用eCryptfs进行管理。(无需卸载eCryptfs软件包,特别是当存在其他eCryptfs挂载时。)

    sudo rm user.new/.ecryptfs user.new/.Private
    
  8. 将未加密的主目录移动到原位。

    sudo mv user user.old && sudo mv user.new user
    
  9. user的身份登录并检查一切是否正常工作,eCryptfs不会启动。

    mount | grep ecryptfs
    
  10. 删除user主目录的原始内容和加密数据。

    rm -r /home/user.old
    sudo rm -r /home/.ecryptfs/user
    

Jonik的解释很有效。但我做了以下替代步骤:

  1. 注销
  2. 按下 Ctrl+F4。应该会打开一个命令行界面。
  3. 以root身份登录
  4. rm -rf .ecryptfs

然后,替代步骤6:按下 Ctrl+F7。如果您的图形用户界面登录屏幕未出现,请按下 Ctrl+F8


  • 如果你可以备份到外部存储器,就备份一下吧。(不是必须的,但在文件操作之前总是好的。)

  • 熟悉一下 tty,至少有点了解。(按下 Ctrl Alt F7Ctrl Alt F1 等键。)你需要同时使用两个 tty。一个是 root 用户,另一个是你的主要用户。

  • 在单独的 tty 上以 root 身份登录,创建一个新的主目录:

    mkdir /home/user.newdir
    chown user:user /home/user.newdir
    
  • 退出图形会话。你可以重新启动以确保没有程序在正常用户下运行。

  • 在单独的 tty 上以你的正常用户身份登录,将所有文件移动到新的目标位置:

    mv ~/* /home/user.newdir/
    
  • 使用 root tty,重命名目录:

    mv /home/user /home/user.encfs
    mv /home/user.newdir /home/user
    
  • 现在应该一切正常了。:) 一旦准备好了,删除旧文件 /home/.encryptfs/home/user.encfs/home/user/.Private/home/user/.encryptfs。如果你愿意,可以先重命名它们,然后再删除。


我没有使用这里的任何答案。而是(在Ubuntu Studio 14.04中):

  1. 我将所有我想保留的文件,尤其是所有的.*文件,复制到了$HOME之外的一个目录中。
  2. 我创建了一个新用户(系统 > 用户和组),并将该用户添加到sudo组。我没有勾选“加密家目录以保护敏感数据”选项。
  3. 我注销并以新用户身份重新登录,然后删除了我的原始账户,事先检查了数字UID(高级选项),选择了删除原始$HOME中的文件选项。这个操作完成时出现了一个“未知错误”。在/home目录中检查,我发现我的旧$HOME已经消失了。
  4. 我重新创建了我的原始用户账户,并检查确认它使用了原始的数字UID,同时确保没有勾选“加密家目录以保护敏感数据”选项。
  5. 我删除了新建的几乎空白的原始$HOME目录,并将备份的$HOME重命名为原始$HOME,然后注销。
  6. 我登录我的新原始账户,就好像什么都没有发生过。
  7. 我检查了/home目录,发现一个名为.ecryptfs的目录,我将其删除而没有产生任何问题。
我认为删除提供加密家目录功能的软件包应该是可选的,我也一直推迟删除为此目的创建的新用户账户,因为我觉得将来可能会有用。
我这样做的原因是什么呢?旧电脑看起来好像要出问题了。当它真的出问题时,我希望能够在另一台电脑上无需任何麻烦地访问硬盘。

在Ubuntu 16.04中执行了以下步骤:
1:sudo cp -rp /home/USERNAME /home/USERNAME.backup 2:sudo -i
3:umount -fl /home/USERNAME
4:rm -rf /home/USERNAME
5:apt-get remove ecryptfs-utils libecryptfs0 -s
6:mv /home/USERNAME.backup /home/USERNAME && rm -rf /home/USERNAME/.Private && rm -rf /home/USERNAME/.ecryptfs
7:reboot now

简单的解决方案,适用于我:
你应该有另一个具有sudo权限的用户
1. 重新启动 2. 在登录界面按下CTRL+ALT+F1 3. 使用另一个具有sudo权限的用户登录 4. sudo rm -rf /home/youruser/.ecryptfs 5. sudo rm /home/youruser/.Private 6. sudo apt-get remove --purge ecryptfs-utils libecryptfs1 7. sudo reboot 8. 以你的用户身份登录,享受无加密的主目录 ;)

3这将清除在启用加密后进行的所有修改。对于刚安装的系统来说可能没问题,但你必须明确提到这一点。 - Melebius