对 PAM 配置节和控制标志参数的作用感到困惑

对 PAM 配置节和控制标志参数的作用感到困惑

我刚刚开始学习 RHCE。在谈到 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

根据PAM 文档sufficient意味着它将停止处理堆栈的其余部分。如果是这种情况,那么第三行永远不会检查登录用户的 UID。

我的解释正确还是我误解了什么?

答案1

sufficient中的指示控制域意思是如果pam_unix报告成功,那么这个堆栈立即返回成功。如果pam_unix失败(例如,因为用户没有密码或不存在),则堆栈继续执行pam_succeed_if.该行反过来会立即拒绝 UID < 500 的用户的任何登录。最后,在传统 unix 方法中未能通过身份验证的 UID ≥ 500 的用户将被该堆栈拒绝,但可能会被调用堆栈授权(例如通过.rhosts如果rshd配置调用此堆栈)。换句话说:

if unix authentication ok then success
else if uid < 500 then fail hard
else fail (but allow caller to proceed)

sufficient基于网络的身份验证方法(例如 NIS 和 LDAP)通常会在该行之前添加为行pam_deny。这将仅在 UID 大于 500 时允许网络帐户,并给予本地身份验证优先权。这样,NIS或LDAP服务器不能提供任何系统用户,只能提供“真实”用户(通常,低UID是系统用户);此外,如果网络出现故障,具有本地帐户的用户仍然可以登录。

相关内容