最近,我们重启了服务器,发现 ecryptfs 挂载失败:
...
在用户密钥环中找不到签名
也许尝试交互式'ecryptfs-mount-private'
user@host:~$
可能是因为密码更改?
虽然,
1. There's no mount password
2. We might have login password
尝试恢复挂载目录时,它会输出:
user@host:~$ ls
Access-Your-Private-Data.desktop README.txt
user@host:~$ ecryptfs-mount-private
Enter your login passphrase:
Error: Unwrapping passphrase and inserting into the user session keyring failed [-5]
Info: Check the system log for more information from libecryptfs
ERROR: Your passphrase is incorrect
Enter your login passphrase:
user@host:~$ sudo ecryptfs-mount-private
[sudo] password for user:
Enter your login passphrase:
Inserted auth tok with sig [ad21fabcda6abfeab] into the user session keyring
fopen: No such file or directory
user@host:~$
因此,如您所见,它显示了如此奇怪的错误:fopen: No such file or directory
而且,当没有运行时ecryptfs-mount-private
-sudo
它失败了。使用ecrypts-recover-private
和登录密码安装文件夹时,它会像魅力一样将其安装在临时文件夹中。
此外,我们已经尝试过ecryptfs-rewrap-password
,但如果没有 sudo
. 因此,使用sudo ecryptfs-rewrap-password
成功重新包装,但重新启动后相同的情况仍然存在。
总而言之,这可能是什么;如何在登录时修复此自动挂载加密主目录?
简而言之,用户的文件
wrapped-passphrase
有错误的权限(应该是-rw------- user user
,是-rw------- root root
)。Ran
ecryptfs-mount-private
命令(输入的登录密码)使用strace
如下:内容
/tmp/strace.log
:所以,我们看到没有足够的信息。运行相同的命令(输入登录密码),但使用标志
-f
来跟踪子进程并使用root权限:部分
/tmp/strace2.log
文件内容:如我们所见,它找不到root的文件
Private.sig
;看起来它应该由我们尝试恢复的加密目录的用户运行,而不是在特定目录中运行。总而言之,我使用用户权限运行了这个命令(输入了登录密码):
部分
/tmp/strace3.log
文件内容:正如我们现在所看到的,
ecryptfs-mount-private
实用程序无法访问用户的wrapped-passphrase
文件,从而导致Permission denied消息。检查
/home/user/.ecryptfs/wrapped-passphrase
文件的权限,它们是:将此文件的所有者通过更改
sudo chown user:user /home/user/.ecryptfs/wrapped-passphrase
为用户并在ecryptfs-mount-private
没有 strace(输入登录密码)的情况下重新运行上述()命令,导致成功消息:我设置了一个 ecryptfs 私人文件夹,然后从包装密码文件中删除了 r & w 权限以进行测试...如果您在看到消息后立即检查了系统日志
你会看到这样的行:
1 月 15 日 00:21:48 sys ecryptfs-insert-wrapped-passphrase-into-keyring:无法检测包装的密码版本:权限被拒绝
1 月 15 日 00:21:48 sys ecryptfs-insert-wrapped-passphrase-into-keyring:错误试图从文件 [/home/user/.ecryptfs/wrapped-passphrase]中解开密码短语;rc = [-13]
这些将是一个非常强大的箭头,指向检查 ~/.ecryptfs/wrapped-passphrase 文件的权限。(不需要 sudo 或 strace)
总而言之,只需确保您正在
ecryptfs-mount-private
以尝试挂载的同一用户目录运行命令,并且wrapped-passphrase
文件具有-rw-------或(600)权限以及与加密目录相同的所有者。