10.4. 关于 PAM 配置文件
PAM 配置文件指定 Red Hat Enterprise Linux 中服务的身份验证方法和策略。每个 PAM 感知应用程序或服务在 /etc/pam.d/
目录中都有相应的文件。文件以它控制访问的服务命名。例如,login
程序有一个名为 /etc/pam.d/login
的相应的 PAM 配置文件。
手动编辑 PAM 配置文件可能导致身份验证和访问问题。使用 authselect
工具配置 PAM。
PAM 配置文件格式
每个 PAM 配置文件都由为特定模块定义设置的指令组成。PAM 在某些模块的身份验证过程中使用参数将信息传递给可插拔模块。
module_type control_flag <module_name> <module_arguments>
module_type control_flag <module_name> <module_arguments>
例如:
auth required pam_unix.so
auth required pam_unix.so
PAM 模块类型
PAM 模块类型指定模块执行的身份验证任务的类型。模块可以执行以下任务:
- 帐户管理
- 身份验证管理
- 密码管理
- 会话管理
单个模块可以提供任何或所有模块类型。例如,pam_unix.so
提供所有四种模块类型。
模块名称,如 pam_unix.so
,为 PAM 提供包含指定模块类型的库的名称。目录名称被忽略,因为应用程序链接到 libpam
的合适版本,这样可找到模块的正确版本。
模块类型指令可以被堆栈或放在另一个模块之上,以便将多个模块一起用于一个目的。模块的顺序以及控制标记非常重要,它决定了特定模块的成功或失败对于向服务验证用户的整体目标是多么重要。
您可以堆栈 PAM 模块,以强制在允许用户进行身份验证前必须满足的特定条件。
PAM 控制标志
当 PAM 模块执行其功能时,它返回一个成功或失败结果。控制标志指示 PAM 如何处理此结果。
简单标记使用关键字,更复杂的语法如下 [ <value1> = <action1> < value2>= <action2> …]
格式。
当模块的控制标志使用 sufficient
或 requisite
值时,列出的模块的顺序对身份验证过程非常重要。
有关 PAM 控制标志的详细描述,包括选项的列表,请查看 pam.conf (5)
手册页。