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>