Ubuntu OS X LDAP 身份验证

Ubuntu OS X LDAP 身份验证

我刚刚关注关于如何设置 Ubuntu 以使用 Mac OS X 10.4 服务器进行身份验证的指南。我完全按照指南操作,最后能够通过运行以下命令查看用户

getent 密码
getent 密码 (用户)

这将提供有关用户的所有正确信息。我的问题是我希望这些用户能够通过登录提示登录,但这行不通。当我以本地用户身份登录时,我得到了通常的用户名和密码提示,但随后我得到了 LDAP 密码提示,我可以在其中输入任何内容并仍能成功登录。

有什么办法可以解决这个问题吗?提前致谢!

更新:

如下所述,我确信 LDAP 设置正确,因为我可以看到所有使用 getent passwd 的 LDAP 用户,但由于我无法使用susshgdm以这些用户的身份登录,所以出现了其他问题。

答案1

问题在于该指南是错误的,或者至少不是最优的。

/etc/pam.d/common-auth 应该有:

auth 充分 pam_unix.so nullok_secure nodelay
身份验证充分 pam_ldap.so use_first_pass
身份验证需要 pam_deny.so

这表明 pam_unix 或 pam_ldap 是充足的登录,任何登录失败都会被拒绝。它首先尝试本地 unix 登录 - 如果您的 LDAP 服务器已关闭或无法访问并且您仍然需要以本地用户身份登录,这将非常有用。

它还使用“use_first_pass”而不是“try_first_pass”...它们非常相似,只是如果第一次输入密码错误,它不会再次提示输入密码。

有关更多详细信息,请参阅 pam_unix 和 pam_ldap 的手册页。

顺便说一句,将以下内容添加到 /etc/pam.d/common-session 非常有用:

会话需要 pam_limits.so

它允许您使用 /etc/security/limits.conf 和 access.conf 等对允许哪些用户登录进行非常精细的控制(例如,我将服务器上的 ssh 登录限制为管理员组的成员),并为他们的登录设置资源限制(内存,maxlogins,优先级等)。

答案2

/etc/pam.d/common-(whatever) 中的 common_(whatever) 顺序是否正确?请检查这些文件和 /etc/pam.d/login,确保它们上方没有标有“required”或“requisite”的文件。

另外,您是否编辑了 /etc/ldap.conf 和 /etc/ldap/ldap.conf 以反映您的 ldap 设置?如果这些都不起作用,您可以尝试发布失败登录的日志片段,并可能发布 LDAP 服务器上尝试绑定的日志片段。

请注意,您可以在 getent passwd 中看到用户没有意味着您已正确设置 ldap。意味着您已正确设置 nss_ldap。身份验证由单独的模块 pam-ldap 完成。

答案3

您是否使用匿名绑定来绑定 LDAP 服务器?获取用户列表并根据 LDAP 服务器对其进行身份验证由 2 个单独的包处理。您能否发布您的 /etc/ldap.conf 和任何相关错误?

相关内容