配置 PAM 和 NSS
PAM 和 NSS 提供 Linux 应用程序(如桌面)与 Winbind 之间的联系媒介。与许多 Linux 服务一样,您可以通过文本文件来配置 PAM 和 NSS。我们先来讨论一下如何配置 PAM。
PAM 为使用它的应用程序提供了四个与身份验证相关的功能。身份验证设施允许应用程序确定使用它的用户。帐户设施提供的帐户管理功能(如登录时间限制)与身份验证并不是特别相关。密码设施提供请求和管理密码的机制。会话设施执行与用户相关的安裝和应用程序的拆卸任务,例如,在用户特定的目录中记录或创建文件。
Red Hat 下的 PAM 将它的配置文件存储在 /etc/pam.d 目录中,其中包含使用 PAM 进行身份验证的每个应用程序的文本文件。例如,文件 /etc/pam.d/gdm 包含 Gnome Desktop Manager (GDM) 的 PAM 配置信息,即 Red Hat 的默认窗口运行环境。每个 PAM 配置文件都包含多行内容,其中每行分别定义 PAM 身份验证过程的某个方面。图 11 显示了 GDM 的 PAM 配置文件的内容。
PAM 配置文件中的每个项目都具有 <管理组> <控制> <模块> <参数> 的形式,其中 <管理组> 对应于配置条目所属的设施:身份验证、帐户、密码或会话。图 12 中描述的控制关键字可控制 PAM 处理配置条目的方式。该文件的第三栏包含 /lib/security 目录中的 PAM 共享库的名称。共享库包含可动态加载的可执行代码,类似于 Windows 中的 DLL。模块名称后的其他术语都是 PAM 传递到共享库的参数。
关键字 描述
Required 如果模块成功,则 PAM 将继续评估管理组的其余项目,并且结果将由其余模块的结果决定。如果模块失败,PAM 将继续评估,但向调用应用程序返回失败消息。
Requisite 如果模块成功,PAM 将继续评估管理组条目。如果模块失败,PAM 将返回到调用应用程序,并且不做进一步处理。
Sufficient 如果模块成功,PAM 将向调用应用程序返回成功消息。如果模块失败,PAM 会继续评估,但结果将由后续模块决定。
Optional 除非模块是为管理组指定的唯一模块,否则 PAM 将忽略模块的结果。
Include PAM 包括引用的 PAM 配置文件的内容,并且还会处理该配置文件包含的条目。
您可以看到每个管理组都包含多个条目。PAM 按照调用命名的模块的顺序处理条目。然后,该模块返回成功或失败消息,而 PAM 将继续根据控制关键字进行评估。
您可能会注意到,GDM 的 PAM 配置文件在它的所有管理组中都包含系统身份验证。这正是 PAM 为 GDM 建立默认身份验证行为的方式。通过修改系统身份验证,您可以修改在其 PAM 配置中包含系统身份验证文件的所有应用程序的身份验证行为。图 13 中介绍了默认系统身份验证文件。
图 13 PAM 系统身份验证文件
Name Service Switch (NSS) 模块将隐藏系统数据存储的详细信息以防应用程序开发人员看见,这与 PAM 隐藏身份验证的详细信息的方式大体相似。NSS 允许管理员指定存储系统数据库的方式。具体来说,管理员可以指定如何存储用户名和密码信息。因为我们希望应用程序使用 Winbind 在 Active Directory 中查询用户信息,所以我们必须修改 NSS 配置文件才能显示此信息。
Red Hat 包含一个小型的图形小程序,可用来配置 PAM 和 NSS,称为 system-config-authentication。它负责管理您需要对系统身份验证和 nss.conf 文件进行的大部分(而非全部)更改。