On this page
6.31. pam_succeed_if-测试帐户 Feature
pam_succeed_if.so [ flag ...] [ condition ...]
6.31.1. DESCRIPTION
pam_succeed_if.so 设计为根据要验证的用户所属帐户的 Feature 或其他 PAM 项的值来成功或失败进行身份验证。一种用途是根据此测试选择是否加载其他模块。
应该给模块一个或多个条件作为模块参数,并且只有满足所有条件,身份验证才会成功。
6.31.2. OPTIONS
支持以下* flag *:
debug- 打开发送到 syslog 的调试消息。
use_uid- 使用正在运行应用程序的 UID 的用户帐户而不是通过身份验证的用户来评估条件。
quiet- 不要将失败或成功记录到系统日志中。
quiet_fail- 不要将故障记录到系统日志中。
quiet_success- 不要将成功记录到系统日志中。
audit- 将未知用户登录到系统日志。
- Condition *是三个词:一个字段,一个测试和一个要测试的值。
可用字段是* user , uid , gid , shell , home , ruser , rhost , tty 和 service *:
field < number- 字段的数值小于数字。
field <= number- 字段的数值在数值上小于或等于数字。
field eq number- 字段的数值在数值上等于数字。
field >= number- 字段的数值在数值上大于或等于数字。
field > number- 字段的数值在数值上大于数字。
field ne number- 字段的数值与数字不同。
field = string- 字段与给定的字符串完全匹配。
field != string- 字段与给定的字符串不匹配。
field =~ glob- 字段匹配给定的 glob。
field !~ glob- 字段与给定的 glob 不匹配。
field in item:item:...- 该字段包含在用冒号分隔的项目列表中。
field notin item:item:...- 该字段不包含在用冒号分隔的项目列表中。
user ingroup group[:group:....]- 用户在给定的组中。
user notingroup group[:group:....]- 用户不在给定的组中。
user innetgr netgroup- (用户,主机)在给定的网络组中。
user notinnetgr group- (用户,主机)不在给定的网络组中。
6.31.3. 提供的模块类型
提供了所有模块类型(account,auth,password和session)。
6.31.4. 返回值
PAM_SUCCESS
- 条件是真的。
PAM_AUTH_ERR
- 条件是 Pseudo。
PAM_SERVICE_ERR
- 发生服务错误,或者参数无法正确解析。
6.31.5. EXAMPLES
为了模拟* pam_wheel *的行为,除了没有通过仅检查根组成员身份来近似到组 0 的后备情况:
auth required pam_succeed_if.so quiet user ingroup wheel:root
如果类型匹配,则仅当 UID 超过 500 时才加载 othermodule 规则。在默认值之后调整数字以跳过多个规则。
type [default=1 success=ignore] pam_succeed_if.so quiet uid > 500
type required othermodule.so arguments...
6.31.6. AUTHOR
Nalin Dahyabhai<nalin@redhat.com>