我已经将几个框切换到SSSD,因此它们现在在中心LDAP服务器上进行身份验证,并在脱机时缓存凭据。这很好,Ubuntu软件包也安装得很好。
但是现在当我登录时,我的主目录不再是自动解密/挂载的。如果退出GDM并在控制台登录,就会出现以下错误:
keyctl_seach Required key not avaliable如果我运行建议的命令(ecryptfs挂载-私有)并给出我的密码,我的主目录就会被解锁。
我试图了解登录过程是如何改变的,这样我的密码就不再自动解锁加密密钥了。我认为这是PAM问题,所以我在下面包含了我的/etc/pan.d/common文件。
我猜想密码正在传递给SSSD,然后跳过任何通常的步骤来解锁密钥。有人能解释一下这是怎么回事吗?
auth [success=3 default=ignore] pam_sss.so
auth [success=2 default=ignore] pam_unix.so nullok_secure try_first_pass
auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_ecryptfs.so unwrap当用户登录时,auth.log正在报告此错误:
login[14202]: NULL passphrase; abortinggoogle只在pam_ecryptfs.so的源中显示此错误,并在接收到的PAM_AUTHTOK为NULL时触发:
rc = pam_get_item(pamh, PAM_AUTHTOK, (const void **)&passphrase);
[...]
if (passphrase == NULL) {
[...]
syslog(LOG_ERR, "NULL passphrase; aborting\n");
[...]
}因此,至少正在调用pam_ecryptfs.so (也就是说,不是因为SSSD已经到位而跳过它)。然而,为什么它会得到一个空密码呢?
现在我了解了更多关于PAM的知识,我用我的公共文件的副本更新了帖子,因为这是登录时使用的文件(不是普通密码)。
发布于 2011-08-13 23:23:48
答案就在文件里!我只需要先找出问题所在,然后再回去检查设置的每个元素:
http://manpages.ubuntu.com/manpages/natty/man8/pam_sss.8.html
将选项"forward_pass“添加到pam_sss.so中会告诉SSSD模块将输入的密码放在堆栈上,以便其他模块(即pam_ecryptfs.so)可以使用这些信息。
因此,我的ecryptfs + SSSD启用/etc/pam.d/ enabled auth文件如下所示:
auth [success=3 default=ignore] pam_sss.so forward_pass
auth [success=2 default=ignore] pam_unix.so nullok_secure try_first_pass
auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_ecryptfs.so unwrap注意:在pam_ecryptfs.so行的末尾加上"debug“这个词也破坏了一些东西!
我今天确实学到了很多关于PAM,氪星和侏儒的知识!希望这有助于人们在未来-我甚至可以提交一个功能请求,以使它添加为默认设置。
https://askubuntu.com/questions/56972
复制相似问题