某些 PAM 模块是可配置的。 对应的配置文件位于 /etc/security 中。 本节简要介绍与 sshd 示例相关的一些配置文件 - pam_unix2.conf、pam_env.conf、pam_pwcheck.conf 和 limits.conf。
传统的基于密码的身份验证方法是由 PAM 模块 pam_unix2 控制的。 它可以从 /etc/passwd、/etc/shadow、NIS 映射、NIS+ 表或 LDAP 数据库中读取必要的数据。 通过配置各个应用程序自己的 PAM 选项或通过编辑 /etc/security/pam_unix2.conf 进行全局配置可以影响此模块的行为。 中说明了该模块一个非常基本的配置文件。例 27.6 “pam_unix2.conf”
用于模块类型 auth 和 password 的 nullok 选项指定允许相应类型的帐户使用空密码。 允许用户更改他们帐户的密码。 session 类型的模块的 none 选项指定不为它记录任何消息(这是默认设置)。 通过文件本身中的注释和 pam_unix2(8) 的手册页可以了解其他配置选项。
此文件可用于定义调用 pam_env 模块时为用户设置的标准化环境。 它允许您使用以下语法预设环境变量:
VARIABLE [DEFAULT=[value]] [OVERRIDE=[value]]
VARIABLE要设置的环境变量的名称。
[DEFAULT=[value]]设置的管理员所需的默认值。
[OVERRIDE=[value]]可能由 pam_env 查询并设置的值,覆盖默认值。
有关 pam_env 如何使用的典型示例就是 DISPLAY 变量的调整,在发生远程登录是该变量会改变。 例 27.7 “pam_env.conf”中显示了这一工具。
例 27.7. pam_env.conf
REMOTEHOST DEFAULT=localhost OVERRIDE=@{PAM_RHOST}
DISPLAY DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}
第一行将 REMOTEHOST 变量的值设置为 localhost,当 pam_env 不能确定任何其他值时就会使用该值。 DISPLAY 变量又包含 REMOTEHOST 的值。 文件 /etc/security/pam_env.conf 中的注释提供了详细信息。
此配置文件用于 pam_pwcheck 模块,该模块为所有 password 类型的模块读取此文件中的选项。 储存在此文件中的设置优先于单个应用程序的 PAM 设置。 如果尚未定义应用程序特定的设置,则应用程序使用全局设置。例 27.8 “pam_pwcheck.conf” 指示 pam_pwcheck 允许使用空密码和修改密码。 文件 /etc/security/pam_pwcheck.conf 中介绍了模块的更多选项。