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. 提供的模块类型

提供了所有模块类型(accountauthpasswordsession)。

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<[email protected]>