在我的 Rocky Linux 9.3 机器上,LDAP 身份验证已启用authselect
并且工作正常。我可以通过本地帐户和仅限 LDAP 的帐户通过 ssh 登录到这台计算机。然而,/etc/pam.d/password-auth
包含在 中的my/etc/pam.d/sshd
似乎与当前的行为相矛盾。它包含了:
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_usertype.so issystem
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so
仅 LDAP 帐户会失败pam_unix.so
(不是吗?)。因为pam_unix.so
是required
,在我看来,仅 LDAP 帐户将无法通过整个account
测试(即使pam_sss.so
成功)。然而,仅 LDAP 帐户在现实中确实有效。为什么?
man pam.conf
说:
必需:此类 PAM 的失败最终将导致 PAM-API 返回失败
足够:如果此类模块成功并且先前所需的模块没有失败,则PAM 框架将成功返回给应用程序
好的:这告诉 PAM 管理员认为此返回代码应该直接影响整个模块堆栈的返回代码。换句话说,如果堆栈的先前状态将导致返回 PAM_SUCCESS,则模块的返回代码将覆盖该值。请注意,如果堆栈的先前状态保存了某个指示模块故障的值,则此“ok”值将不会用于覆盖该值。 (我强调的)
同样在另一个问题中,required pam_unix.so
引起了一个问题(正如我所期望的)。
为什么我的系统可以工作?