如果“auth”成功或失败,是否会检查“account”模块?

如果“auth”成功或失败,是否会检查“account”模块?

在以下文件的 PAM 配置中/etc/pam.d/system-auth

auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so

如果第一部分 ( auth) 成功,第二部分 ( account) 会被调用和检查吗?相反,如果auth部分失败,会account被调用吗?

在另一种情况下,为了强调我的主要困难是,如果我们auth混合account,我们来看以下例子:

auth        sufficient    pam_unix.so nullok try_first_pass
account     required      pam_unix.so

auth        requisite     pam_succeed_if.so uid >= 500 quiet
account     sufficient    pam_succeed_if.so uid < 500 quiet

PAM 究竟会如何表现?我对此感到困惑,如果有人能为我解释一下,那对我将非常有帮助。

答案1

PAM 不会混合身份验证和帐户类型,而是独立堆叠根据管理类型。堆栈的返回值取决于选项和控制标志的顺序,参见https://docs.oracle.com/cd/E19253-01/816-4557/pam-15/index.html

如何处理结果,取决于应用程序。通常,像 login 或 su 这样的程序仅在成功验证后才验证帐户。

相关内容