帮助理解此 pam 配置的 auth 部分

帮助理解此 pam 配置的 auth 部分

我继承了这个 pam 配置并对其进行审核,同时还添加了 pam_access。

我正在尝试具体理解auth pam_succeed_ifauth pam_localuser线条。

#%PAM-1.0                                                                                 
# This file is auto-generated, but maintained in ansible.                                 
# Changes will be destroyed the next time authconfig is run.                              
                                                                                          
auth        required      pam_env.so                                                      
auth        required      pam_faildelay.so delay=2000000                                  
# vvvvvv                                           
auth        [default=1 ignore=ignore success=ok] pam_succeed_if.so uid >= 200 quiet       
auth        [default=1 ignore=ignore success=ok] pam_localuser.so 
# ^^^^^^                        
auth        sufficient    pam_unix.so nullok try_first_pass                                                                   
auth        requisite     pam_succeed_if.so uid >= 200 quiet_success                      
auth        sufficient    pam_sss.so forward_pass                                         
auth        required      pam_deny.so                                                     
                                                                                          
account     required      pam_access.so                                                   
account     required      pam_unix.so broken_shadow                                       
account     sufficient    pam_localuser.so                                                
account     sufficient    pam_succeed_if.so uid < 200 quiet                               
account     [default=bad success=ok user_unknown=ignore] pam_sss.so                       
account     required      pam_permit.so                                                   
                                                                                          
password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok        
password    sufficient    pam_sss.so use_authtok                                          
password    required      pam_deny.so                                                     
                                                                                          
session     optional      pam_keyinit.so revoke                                           
session     required      pam_limits.so                                                   
-session     optional      pam_systemd.so                                                 
# session     optional      pam_oddjob_mkhomedir.so umask=0077                            
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid   
session     required      pam_unix.so                                                     
session     optional      pam_sss.so   

我一直很难找到该[...]部分的文档,特别是它的default=1作用。它跳过下一行是我的理解吗?

  • 如果我们的 uid >= 200,那么我们通过 OK,继续,跳过 pam_localuser,然后检查 pam_unix。

  • 如果我们的 uid < 200,那么我们就会转向 pam_localuser。

  • 在 pam_localuser 中,如果为 true,我们会跳过 pam_unix(???这样可以吗???)

这似乎过于复杂,我不太明白本节的重点是什么。

有人可以解释一下意图吗?

答案1

一个正整数来default跳过规则, modules/pam_succeed_if/pam_succeed_if.8.xml根据 linux-pam项目:

    <para>
      Given that the type matches, only loads the othermodule rule if
      the UID is over 500. Adjust the number after default to skip
      several rules.
    </para>
    <programlisting>
type [default=1 success=ignore] pam_succeed_if.so quiet uid &gt; 500
type required othermodule.so arguments...
    </programlisting>

其他操作是非严格正整数,通常通过文本标签,例如default=diedefault=ignore;这些令牌操作列在 中libpam/pam_tokens.h

pam_localuser跳过pam_unix,因为大概 uid < 200 是不需要通过密码哈希等进行身份验证的本地系统帐户,这些是auth部分规则。通常此类角色帐户还将具有falsenologinshell 集。

相关内容