我一直在玩ecryptfs
,通过ecryptfs-mount-private
和ecryptfs-umount-private
手动挂载/卸载私有商店。当我以配置了ecryptfs
的用户身份登录(即:用户名为 bob)时,它会要求我输入 Linux 用户帐户的登录密码,以便装载专用应用商店。如果我在通过passwd
命令行实用工具登录到系统时更改了密码,ecryptfs
需要新密码才能装载专用应用商店。
如果我以root
用户(即:sysadmin)身份登录并通过sudo passwd bob
更改了鲍勃帐户的密码,然后登录鲍勃的帐户,则当我使用以root
身份登录时设置的新密码时,ecryptfs-mount-private
将失败。
我的理解是,ecryptfs
使用用户密码的哈希来生成另一个哈希/密钥,用于将加密文件"包装"在专用存储中。但是如果是这种情况,为什么当我以实际用户身份登录时更改密码时它"只是工作",而当我以root身份重置密码时却不行?
到目前为止,我最好的猜测是,也许某些设置被传递给passwd
实用程序,导致它在完成后运行辅助脚本。有谁确切知道这如何与ecryptfs
一起工作?
谢谢!
当用户更改自己的密码时,PAM(此处或此处)将调用以使用新用户密码重新包装eCryptfs密码短语,以便您可以在下次登录时解密您的家。
不知何故,我不知道确切的逐行细节,但我想我在/etc/pam.d/common-password
中找到了可疑的行:
password optional pam_ecryptfs.so
如果根尝试,解开eCryptfs密码短语应该会失败,因为它没有您的用户登录密码。 eCryptfs还明确告诉您在创建加密主页(可能是任何加密的私人文件夹)时备份实际的eCryptfs密码短语,因为如果eCryptfs包装的密码文件出现问题,或者您忘记了登录密码,文件将有效地丢失。
如果root可以随时通过更改您的登录密码来更改您的eCryptfs密码短语,那么除了root之外,您将没有真正的安全性。