一 配置文件内容
首先打开配置文件/etc/pam.d/system-auth
,我们会发现这个文件大致分成四列四部分内容。
[root@master ~]# 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_fprintd.so
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)第一列
其中第一列包括 auth、account、password、session四个模块。
参数 | 释义 |
---|---|
auth | 用来识别用户身份,比如提示用户输入密码,判断用户是否为root等 |
account | 检测账户是否允许访问。比如是否允许登录,是否达到最大用户数,root用户是否允许在这个终端登录等 |
password | 进行用户信息更新,一般指修改用户密码 |
session | 用来配置和管理用户会话,定义用户登陆前与退出后的操作 |
2)第二列
第二列包含 required requisite suffifient optinal 四个参数。
参数 | 释义 |
---|---|
required | 该模块失败后,也会执行完其余的模块,最后才会返回错误信息 |
requisite | 该模块必须success才能使认证继续进行,失败后直接返回错误信息,不执行后面的模块 |
sufficient | 如果失败则忽略;如果成功,并且之前的required模块没有发生故障,PAM会向应用程序返回通过的结果,不会再调用堆栈中其他模块 |
optional | 忽略结果,不管成功或者失败 |
include | 与处理结果无关,直接引用其他PAM模块的配置参数 |
3)第三列和第四列
具体使用的类以及参数设置。
三 常用类说明
1)密码过期,要求强制修改密码,且必须满足密码的复杂度。
此处使用 pam_cracklib.so
这个类。
password required pam_cracklib.so enforce_for_root retry=a ...
下面是我们常用的参数以及含义解释。
参数 | 含义 |
---|---|
enforce_for_root | 即使是root用户,也必须符合复杂度条件 |
retry=a | 提示a次用户密码错误输入 |
minlen=b | 密码长度不小于b个字符 |
ucredit=c | 至少有c个大写字母 |
lcredit=d | 至少有d个大写字母 |
dcredit=e | 至少有e个数字 |
ocredit=f | 至少有f个其他特殊字符 |
difok=g | 新密码中至少有g个字符和旧密码不同 |
注意,上面的cdef数字是小于0的数字时,表示要求最少需要几个。
当cdef数字是大于0的数字时,表示要求最多有几个。
比如lcredit=-3
,表示最少要有3个小写字母。
比如dcredit=2
,表示最多只能有2个数字。
由于这个类比较常用,且经常在实际生产环境中会对配置文件的密码复杂度进行修改,所以单独将其拿出来说明。文章来源:https://www.toymoban.com/news/detail-815518.html
下面是其他一些常用的类以及对应的模块,了解即可。文章来源地址https://www.toymoban.com/news/detail-815518.html
类 | 类可用的模块 | 含义说明 |
---|---|---|
pam_unix.so | auth | 提示用户输入密码,并与/etc/shadow对比,匹配则返回0 |
pam_unix.so | account | 检查用户账号信息,账号可用,返回0 |
pam_unix.so | password | 修改用户的密码,并将其更新到/etc/shadow文件中 |
类 | 类可用的模块 | 含义说明 |
---|---|---|
pam_shells.so | auth | 如果用户想登陆系统,它的shell必须是 /etc/shells文件中的shell |
类 | 类可用的模块 | 含义说明 |
---|---|---|
pam_deny.so | auth | 用于拒绝访问 |
pam_deny.so | account | 用于拒绝访问 |
pam_deny.so | password | 用于拒绝访问 |
类 | 类可用的模块 | 含义说明 |
---|---|---|
pam_permit.so | auth | 模块任何时候都返回成功 |
pam_permit.so | account | 模块任何时候都返回成功 |
pam_permit.so | password | 模块任何时候都返回成功 |
类 | 类可用的模块 | 含义说明 |
---|---|---|
pam_securetty.so | auth | 当用户以root登录时,登陆的tty 必须在 /etc/securetty 中 |
类 | 类可用的模块 | 含义说明 |
---|---|---|
pam_listfile.so | auth | 访问应用程序的控制开关 |
pam_listfile.so | account | 访问应用程序的控制开关 |
pam_listfile.so | password | 访问应用程序的控制开关 |
pam_listfile.so | session | 访问应用程序的控制开关 |
类 | 类可用的模块 | 含义说明 |
---|---|---|
pam_limits.so | session | 定义使用系统资源的上限,包括root用户。可以通过 /etc/security/limits.conf 设置 |
到了这里,关于Linux下的/etc/pam.d/system-auth配置文件参数说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!