在过去的几天里,我设置了一些带有 LDAP 身份验证的 Linux 系统,一切正常,但是经过大量研究,我仍然无法真正理解 NSS 和 PAM。
引用:
NSS 允许管理员指定将存储和搜索身份验证文件、主机名和其他信息的源列表
和
PAM 是一组库,为应用程序和底层操作系统提供可配置的身份验证平台
我不明白的是 PAM 和 NSS 如何一起工作和交互。在这本书的架构是解释得很好:我PAM配置为使用pam_ldap
LDAP的帐户和pam_unix
本地帐户,然后我配置nsswitch.conf
来从本地文件和LDAP信息。
如果我理解正确,LDAP 使用了两次:首先pam_ldap
由 NSS使用,然后由 NSS 调用,它本身从pam_unix
. 那正确吗?LDAP 真的使用了两次吗?但是为什么我需要同时配置 NSS 和 PAM?我的解释是 PAM 执行与 NSS 不同的任务,它被其他程序使用。但是,正如我在本页中所读到的那样,应该可以仅使用 NSS 或仅使用 PAM 。
所以我进行了一些试验,我首先尝试从nsswitch.conf
(并且身份验证停止工作,好像只有 pam_ldap 不足以完成这项工作)中删除 LDAP 。然后我在 NSS 中重新启用了 LDAP,并从 PAM 配置中删除了它(这次一切正常,好像pam_ldap
没用一样,而且 NSS 足以验证用户的身份)。
有没有人可以帮我澄清一下?提前谢谢了。
我现在刚刚尝试了一些东西。我再次删除了所有pam_ldap
pam 配置字段中的所有条目,并且还shadow: ldap
从 …