更改密码后,如何重新获得加密主目录的访问权限?

更改密码后,如何重新获得加密主目录的访问权限?

在 12.04 LTS x64 上,我通过 User Accnts 工具更改了我的用户密码。之后,我无法使用新密码再次登录,因为我的主目录已加密,而上述错误不允许使用新登录密码解密主目录。
解密主目录的密码保存在我加密的主目录上的一个文件夹中。

有什么方法可以恢复此密码并解锁我的主目录?
没有解密密码的单独记录。我仍然有一个可以访问的正常运行的访客帐户,但我不清楚我是否可以在以访客身份登录且没有解密密码的情况下以某种方式访问​​加密用户主目录中的文件。请尽快告知。

答案1

如果您正在使用ecryptfs(这是加密主文件夹的标准方法,所以很可能是这样),那么当您更改用户密码时,您将失去对加密主文件夹的自动访问权(正如您所发现的)。大多数常规更改密码的方法(如passwd)不应该发生这种情况,它们应该使用 PAM 自动更新加密(但如果管理员更改/重置密码则不会,否则它不安全)。

ecryptfs实际上建议您保留它使用的实际密码的备份(它不是您的登录密码,但它是用您的登录密码加密或“包装”的),以防您所指的包装密码文件出现问题。

但是使用ecryptfs-unwrap-passphrase您应该能够找出实际的 ecryptfs 密码。

ecryptfs-rewrap-passphrase可以使用旧的用户密码来“解开”ecryptfs 密码,然后用新的用户密码“重新包装”它。以下是该man页面的一个片段:

NAME
   ecryptfs-rewrap-passphrase - unwrap an eCryptfs wrapped passphrase, re‐
   wrap it with a new passphrase, and write it back to file.

SYNOPSIS
   ecryptfs-rewrap-passphrase [file]

   printf "%s\n%s" "old wrapping passphrase" "new wrapping  passphrase"  |
   ecryptfs-rewrap-passphrase [file] -

但是在对任何文件运行该程序之前,我会对其进行备份。(注:您不需要使用格式,如果您不介意输入密码,printf...只需运行它就可以了)。ecryptfs-rewrap-passphrase [file]

您可以运行ecryptfs-recover-private并挂载它找到的任何 ecryptfs 加密的私人文件夹,然后备份/复制等。

请参阅所有工具的页面man ecryptfs以获取更多信息。archlinux 的 wiki 上有一些非常好的信息manecryptfs-...https://wiki.archlinux.org/index.php/ECryptfs

答案2

以下是我使用 Linux Mint Live CD 解决 Linux Mint 安装中的问题的方法:

mint@mint /tmp $ sudo ecryptfs-recover-private
INFO: Searching for encrypted private directories (this might take a while)...
INFO: Found [/media/mint/632d671e-65a8-4566-b101-hab6b061b502/.ecryptfs/USERNAME/.Private].

Try to recover this directory? [Y/n]: n

mint@mint /tmp $ sudo ecryptfs-recover-private
INFO: Searching for encrypted private directories (this might take a while)...
INFO: Found [/media/mint/632d671e-65a8-4566-b101-hab6b061b502/.ecryptfs
/USERNAME/.Private].

Try to recover this directory? [Y/n]: y
INFO: Found your wrapped-passphrase

Do you know your LOGIN passphrase? [Y/n] y
INFO: Enter your LOGIN passphrase...

Passphrase: 

Inserted auth tok with sig [562b3416hhc4ud6r] into the user session keyring
INFO: Success!  Private data mounted at [/tmp/ecryptfs.1x34gL7R].

mint@mint /tmp $ gksu nemo  [<---- NOTE THAT I HAVE OPENED TERMINAL IN THE TEMP FOLDER of the LIVE CD NOW]

通过 Nemo 文件浏览器(我相信它是 Ubuntu 中的 Nautilus),我导航到名为ecryptfs.1x34gL7R(在 LIVE CD 的 TEMP FOLDER 中)的新放置的文件夹,从那里右键单击该文件夹,并选择“以 root 身份打开”。

立刻,无需任何进一步的密码挑战,我就访问了我迄今为止无法访问的主目录。

以我的能力水平,我看不出还有任何其他方法可以恢复数据。

似乎还有一种替代方法ecryptfs,需要您的用户密码,但它总是拒绝您输入的密码 - 总是。即使您的实际 Mint 密码是正确的,并且 Live CD 没有 root 密码。我希望我能记得我在这里谈论的是哪条路线,但基本上,它是始终拒绝您的密码的路线。忘掉它吧。

如果你用我展示的方法没有任何效果,那么也许你忘记了自己的登录密码(不太可能),或者你的加密密钥已损坏(由于硬盘故障或者如果你已经删除了 gvfs - 永远不要碰 gvfs - 互联网上的一些巨魔说它是一种安全风险,并给出了如何删除它的说明,但这将彻底摧毁你的系统)。

如果您无法访问加密驱动器,那么您至少可以通过终端将加密文件夹从 Live Disc tmp 文件夹复制到备份驱动器(例如,cp -a /source/. /dest/ 或者可能是 cp -a ~/source/. ~/dest/ ),然后在稍后的某个日期将其交给专家进行解密。

现在您可以再次看到您的文件,但您又遇到了一个新问题 - 您实际上无法将任何内容移出浏览器窗口。但是,您至少可以打开单个文件(文本、文字处理器和图片文件)并选择将它们保存到新位置(例如备份驱动器)。

最后,对不起 Ubuntu 和 Mint 程序员(是的,就是我和你)等等。但是 Linux 需要改进,以便在数据恢复的情况下更加方便用户使用。如果数据存在,并且用户完全知道他的密码,那么数据恢复过程应该更加简化!

PS 请记住:ecryptfs不是encryptfs,请记住,Live CD 很可能使用默认的美国键盘字符集,因此,请相应地更改输入登录密码的方式,例如,如果您的密码使用特殊字符。

相关内容