LDAP 与 PAM 和 NSS 的集成 本节讨论 Senior Level Linux Professional(LPIC-3)考试 301 的 305.1 主题的内容。这个主题的权值为 2。 在本节中,学习: 配置 NSS 以从 LDAP 获取信息 配置 PAM 使用 LDAP 进行身份验证 在各种 UNIX 环境中配置 PAM 模块 按照传统的 UNIX 方式,PAM 和 Name Service Switch(NSS)工具对各种身份验证组件进行抽象并对它们的实现进行查找,这使管理员能够改变后端数据存储,而不必重新编译应用程序。例如,可以透明地把传统的基于 /etc/passwd 的身份验证改为 Network Information Service(NIS),因为 NSS 被实现为 C 库的一部分。应用程序使用标准的库调用(比如 getpwent(3))查找用户,但是通过一些配置,可以把数据重定向给 NIS 等其他数据存储。 PAM 有点儿特殊,在编写应用程序时必须考虑到 PAM。管理员可以使用许多库定制支持 PAM 的应用程序行为,例如要求特定的组成员关系和登录时间,这样才能成功通过身份验证。 可以结合使用 PAM 和 NSS 执行用户身份验证。支持 PAM 的应用程序指示 PAM 检查用户的凭证。管理员可以把 PAM 配置为通过 NSS 工具检查密码,还可以设置任何其他限制。PAM 只用于密码和影子数据库,不能用于组和主机等其他内容。 LDAP 对 PAM 和 NSS 的支持由 PADL 软件的一个开放源码包提供。 配置 NSS 以使用 LDAP NSS 工具在 C 库中实现,它作为用来获取信息的传统库调用的钩子。这个 C 库提供 getpwent(用来获取用户信息) 和 gethostbyname(3)(用来获取主机信息),它们通常分别搜索 /etc/passwd 和 /etc/hosts。通过配置 NSS,管理员可以要求主机名搜索也使用 Domain Name Service(DNS),而应用程序并不知道这一变化。 理解 NSS 表 3 描述 NSS 处理的数据库。大多数数据库在 /etc 中有一个对应的文件,这是存储数据的传统位置。 表 3. NSS 数据库 数据库名 描述 aliases sendmail 的邮件别名,用来把(别名)一个本地地址转发给另一个地址。 ethers 把以太网地址映射到 IP 地址。因为出现了 Address Resolution Protocol(ARP),最近很少使用它了。 group 包含一个组列表以及属于这些组的用户。 hosts 把 IP 地址映射到主机名。 netgroup 用来把服务器分组在一起。常常用于 NIS 和 Network File System(NFS)安全性。 n...