加密主目录:重置 sudo 密码后无法登录

加密主目录:重置 sudo 密码后无法登录

我有一个用户,说secretuser,并带有加密的主目录。不幸的是,我忘记了用户secretuser因为它非常保密。所以我用另一个管理员用户登录,比如主用户,并更改了secretuser通过图形用户界面,比如“newpass”。当尝试以secretuser,当我使用“newpass”时,没有出现“密码错误”之类的信息,但在屏幕闪了一下后,我立即返回到图形登录屏幕。所以我再次登录为主用户并在 shell 窗口中执行:

masteruser$ su secretuser

我在提示符下输入了“newpass”,然后能够登录到 shell。但仍然无法进行图形登录。效果与以前相同。因此,我得出结论,图形对话框无法完全完成其工作,并给了命令提示符一个机会:

masteruser$ sudo passwd secretuser

当然,我必须改成其他的,比如说“newpass1”。不幸的是,图形登录显示的问题和以前一样,但现在,当susecretuser,我只看到了一个加密的文件系统。

masteruser@zhadum:~$ su secretuser
Passwort: newpass1
Signature not found in user keyring
Perhaps try the interactive 'ecryptfs-mount-private'
secretuser@zhadum:/home/masteruser$ cd /home/secretuser
secretuser@zhadum:~$ ls
Access-Your-Private-Data.desktop  README.txt
secretuser@zhadum:~$ 

也许我把安全措施做得有点过了,因为现在我完全陷入了困境。密码似乎已经更改,但它不适用于图形登录,也不适用于解密用户目录。ecryptfs-mount-private按照建议尝试也没有用,因为“newpass”和“newpass1”都不被接受。删除并重新创建用户会让我损失 3 周的工作,因为最近的备份,真丢脸,不是最新的。

我有机会再次获得访问权限吗?

更新:感谢@mxdsp 提供的链接,我尝试了:

masteruser@zhadum:~$ sudo ecryptfs-recover-private
[sudo] password for masteruser: ---- 
INFO: Searching for encrypted private directories (this might take a while)...
INFO: Found [/home/.ecryptfs/secretuser/.Private].
Try to recover this directory? [Y/n]: 
INFO: Found your wrapped-passphrase
Do you know your LOGIN passphrase? [Y/n] Y 
INFO: Enter your LOGIN passphrase...
Passphrase: newpass1
Error: Unwrapping passphrase and inserting into the user session keyring failed [-5]
Info: Check the system log for more information from libecryptfs
masteruser@zhadum:~$ cd /var/log
masteruser@zhadum:/var/log$ tail syslog
Oct  9 06:05:19 zhadum ecryptfs-insert-wrapped-passphrase-into-keyring: Incorrect wrapping key for file [/home/.ecryptfs/secretuser/.Private/../.ecryptfs/wrapped-passphrase]
Oct  9 06:05:19 zhadum ecryptfs-insert-wrapped-passphrase-into-keyring: Error attempting to unwrap passphrase from file [/home/.ecryptfs/secretuser/.Private/../.ecryptfs/wrapped-passphrase]; rc = [-5]
Oct  9 06:05:21 zhadum wpa_supplicant[1625]: nl80211: send_and_recv->nl_recvmsgs failed: -33

并且:

masteruser@zhadum:/var/log$ sudo ecryptfs-recover-private
INFO: Searching for encrypted private directories (this might take a while)...
INFO: Found [/home/.ecryptfs/secretuser/.Private].
Try to recover this directory? [Y/n]: Y
INFO: Found your wrapped-passphrase
Do you know your LOGIN passphrase? [Y/n] n
INFO: To recover this directory, you MUST have your original MOUNT passphrase.
INFO: When you first setup your encrypted private directory, you were told to record
INFO: your MOUNT passphrase.
INFO: It should be 32 characters long, consisting of [0-9] and [a-f].
Enter your MOUNT passphrase: byebye secretuser...

我想现在我完了。我现在开始为我的愚蠢感到悲伤,然后问另一个问题,如何真正删除 32 GBsecretuser从我的硬盘中 - 以确保不会留下更多混乱......

答案1

您需要的是创建加密用户时使用的密码。该密码不是你的密码 ! 找到它后(假设您保留了它),运行:

ecryptfs-unwrap-passphrase

查看更多这里

答案2

你需要

  • 最后一个登录密码(即您使用 强制设置新登录密码之前的密码sudo

    或者

  • 设置加密时创建的原始挂载密码。

wrapped-passphrase文件保存了您加密主目录的挂载密码,并使用您的登录密码进行加密。通过使用 sudo 强制使用新密码,而无需使用旧密码或登录,您的wrapped-passphrase文件不会被解密并使用新的登录密码重新加密。这是设计用来提供任何sudo武装用户都无法绕过的真正安全性。

当您使用 eCryptFS 工具设置加密主页时,ecryptfs-migrate-home它会要求您备份实际的挂载密码,以防出现这样的问题(您忘记登录密码或文件wrapped-passphrase丢失或损坏)。

仅拥有您首次创建用户时的登录密码可能没有什么用,除非您还拥有wrapped-passphrase同一时间使用相同登录密码的文件副本。

答案3

自我回答只是为了分享我对这一事件的见解:

有了加密的主目录,别忘了密码您的密码。即使该机器上有其他管理员用户,您也会丢失密码。

这个答案类似问题可能会为其他人提供有用的背景信息。这也解释了为什么我可以删除安全用户并且不会再次加密主目录。

结合这颗宝石我确实认为加密主分区(并且只加密主分区)具有最佳的安全风险比。至少所有其他选项都被证明是风险大于乐趣...

相关内容