16.3. PAM 模块的配置

某些 PAM 模块是可配置的。对应的配置文件位于 /etc/security 中。本节简要介绍与 sshd 示例相关的配置文件 pam_unix2.confpam_env.confpam_pwcheck.conflimits.conf

16.3.1. pam_unix2.conf

传统的基于口令的鉴定方法是由 PAM 模块 pam_unix2 控制的。它可以从 /etc/passwd/etc/shadow、NIS 映射、NIS+ 表或 LDAP 数据库中读取必要的数据。通过配置各个应用程序自己的 PAM 选项或通过编辑 /etc/security/pam_unix2.conf 进行全局配置可以影响此模块的行为。例 16.6 “pam_unix2.conf” 中说明了该模块一个非常基本的配置文件。

例 16.6. pam_unix2.conf

auth:   nullok
account:
password:       nullok
session:        none

authpassword 类型的模块的 nullok 选项指定对应类型的帐户允许使用空口令。允许用户更改他们帐户的口令。session 类型的模块的 none 选项指定不为它记录任何讯息(这是默认设置)。通过文件本身中的注释和 pam_unix2(8) 的手册页可以了解其它配置选项。

16.3.2. pam_env.conf

此文件可用于定义调用 pam_env 模块时为用户设置的标准化环境。它允许您使用以下语法预设环境变量:

VARIABLE  [DEFAULT=[value]]  [OVERRIDE=[value]]
VARIABLE

要设置的环境变量的名称。

[DEFAULT=[value]]

设置的管理员所需的默认值。

[OVERRIDE=[value]]

可能由 pam_env 查询并设置的值,覆盖默认值。

有关 pam_env 如何使用的典型示例就是 DISPLAY 变量的调整,在发生远程登录是该变量会改变。例 16.7 “pam_env.conf”中显示了这一工具。

例 16.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 中的注释提供了详细信息。

16.3.3. pam_pwcheck.conf

此配置文件用于 pam_pwcheck 模块,该模块为所有 password 类型的模块读取此文件中的选项。储存在此文件中的设置优先于单个应用程序的 PAM 设置。如果尚未定义应用程序特定的设置,则应用程序使用全局设置。例 16.8 “pam_pwcheck.conf” 指示 pam_pwcheck 允许使用空口令和修改口令。文件 /etc/security/pam_pwcheck.conf 中介绍了模块的更多选项。

例 16.8. pam_pwcheck.conf

password:    nullok

16.3.4. limits.conf

可以在文件 limits.conf 中以用户或组为基础设置的系统限制,该文件由 pam_limits 模块读取。该文件允许您设置硬限制(根本不能超出的限制)和软限制(可以临时超出的限制)。要了解语法和可用选项,请阅读文件中包含的注释。