ecryptfs – passwd实用程序如何更新非pipe理员密码更改的散列?

我一直在玩ecryptfs来通过ecryptfs-mount-privateecryptfs-umount-private手动挂载/卸载私有存储。 当我以一个configuration了ecryptfs的用户(ie:username是bob )login时,它会要求我的Linux用户帐号的login密码,以便挂载私有存储。 如果我在通过passwd命令行实用程序login到系统时更改密码, ecryptfs需要我的新密码才能挂载专用存储。

如果我以root用户(即:sysadmin)login并通过sudo passwd bob更改bob帐户的sudo passwd bob ,然后login到Bob的帐户,那么当我使用设置的新密码login时, ecryptfs-mount-private将会失败作为root

我的理解是, ecryptfs使用用户密码的散列来生成另一个散列/密钥,用于“encryption”私人存储中的encryption文件。 但是,如果是这样的话,当我以实际用户身份login时更改密码时,为什么“只是工作”,而不是以root身份重置密码?

到目前为止,我最好的猜测是,也许一些设置被传递给passwd实用程序,导致它在完成后运行第二个脚本。 有谁知道肯定如何与ecryptfs

谢谢!

当用户更改他们自己的密码时,PAM( 在这里或这里 )被调用以用新的用户密码重新包装eCryptfs密码,以便您在下次登录时解密您的家庭。

不知何故,我不知道确切的逐行细节,但我想我在/etc/pam.d/common-password找到了一条可疑行:

 password optional pam_ecryptfs.so 

如果root尝试,解开eCryptfs密码将失败,因为它没有用户登录密码。 eCryptfs还会明确告诉您在创建加密的主目录(可能是任何加密的私有文件夹)时备份实际的eCryptfs密码,因为如果eCryptfs包装的密码文件出现问题,或者忘记了登录密码,文件将会丢失。

如果root可以通过更改登录口令来更改您的eCryptfs口令,那么除了root之外,您将没有真正的安全性。