[root@localhost ~]# cat /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        required      pam_faildelay.so delay=2000000
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
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 sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

上面文件中内容的相应解释:

1、第一组内容

(1)auth        required      pam_env.so        

        登录后的环境变量。required表示一个错误则全返回错误,只不过最后返回错误

(2)auth        sufficient    pam_unix.so nullok try_first_pass   

        验证用户密码的有效性。如果使用nullok参数,用户不输入密码就可以获得系统提供的服务。同时,也允许用户密码为空时更改用户密码。

        try_first_pass尝试在提示用户输入密码前,使用前面一个堆叠的auth模块提供的密码认证用户。sufficient表示如果该模块执行成功则跳过其他所有模块返回结果。

(3)auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success   

        允许uid大于1000的用户在通过密码验证的情况下登录。requisite表示执行错误则立即返回

(4)auth        required      pam_deny.so

        对所有不满足上述任意条件的登录请求直接拒绝。required表示一个错误则全返回错误,只不过最后返回错误

2、第二组内容

(1)account     required      pam_unix.so

        主要执行建立用户帐号和密码状态的任务,然后执行提示用户修改密码,用户采用新密码后才提供服务之类的任务。required表示一个错误则全返回错误,只不过最后返回错误

(2)account     sufficient    pam_localuser.so

        要求将用户列于 /etc/passwd 中。sufficient表示如果该模块执行成功则跳过其他所有模块返回结果。

(3)account     sufficient    pam_succeed_if.so uid < 1000 quiet

        对用户的登录条件做一些限制,表示允许uid大于1000的用户在通过密码验证的情况下登录。sufficient表示如果该模块执行成功则跳过其他所有模块返回结果。

(4)account     required      pam_permit.so

        required表示一个错误则全返回错误,只不过最后返回错误

3、第三组内容

(1)password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=

        对用户密码提供强健性检测。requisite表示执行错误则立即返回

(2)password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok

        让用户更改密码的任务。sufficient表示如果该模块执行成功则跳过其他所有模块返回结果。

(3)password    required      pam_deny.so

        对所有不满足上述任意条件的登录请求直接拒绝。required表示一个错误则全返回错误

4、第四组内容

(1)session     optional      pam_keyinit.so revoke

        表示当用户登录的时候为其建立相应的密钥环,并在用户登出的时候予以撤销。optional表示即便该行所涉及的模块验证失败用户仍能通过认证

(2)session     required      pam_limits.so

        限制用户登录时的会话连接资源,相关pam_limit.so配置文件是/etc/security/limits.conf,默认情况下对每个登录用户都没有限制。required表示一个错误则全返回错误,只不过最后返回错误

(3)-session     optional      pam_systemd.so

(4)session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid

        success=1时执行本行。default=ignore用来设置上面的返回值是无法达的行为时,那么这个模块的返回值将被忽略,不会被应用程序知道。对用户的登录条件做一些限制

(5)session     required      pam_unix.so

        记录用户名和服务名到日志文件的工作,只不过最后返回错误

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐