Linux配置文件详解 system-auth篇

/etc/pam.d/system-auth文件

密码设置以及登录控制文件。可以修改密码策略和登录失败重试策略。

20211129231943.png

[root@02-2C-29-C5-50-1B ~]# 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
auth                required     pam_tally2.so    deny=3 unlock_time=5 even_deny_root root_unlock_time=10   

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


组件名称组件含义
auth组件
认证接口,要求并验证密码
account组件检测是否允许访问。检测账户是否过期或则在末端时间内能否登陆。
password组件设置并验证密码
session组件配置和管理用户sesison
处理选项含义
required

模块必须success才能进行继续。即使失败用户也不会立刻获知,直到所有相关模块完成。

requisite

该模块必须success才能使认证继续进行。

suffifient

如果失败则忽略。

optinal

忽略结果,不管是否失败。

pam_pwquality.so配置密码复杂度

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
密码复杂策略对照表
设置项含义
minlen=12密码最小长度为12个字符。
lcredit=-1密码应包含的小写字母的至少一个
ucredit=-1密码应包含的大写字母至少一个
dcredit=-1将密码包含的数字至少为一个

ocredit=-1

设置其他符号的最小数量,例如@,#、! $%等,至少要有一个
enforce_for_root确保即使是root用户设置密码,也应强制执行复杂性策略

pam_tally2.so配置登录失败处理

auth        required     pam_tally2.so    deny=3 unlock_time=5 even_deny_root root_unlock_time=10

连续密码错误3次锁定账户,普通用户5秒后解锁,root用户10秒解锁

补充一:配置用户密码策略

注意:此教程中的密码策略只对非 root 用户有效,对 root 用户无效。

CentOS、Fedora、RHEL 系统:

1.禁止使用旧密码

 找到同时有 “password” 和 “pam_unix.so” 字段并且附加有 “remember=5” 的那行,它表示禁止使用最近用过的5个密码(己使用过的密码会被保存在 /etc/security/opasswd 下面)。 

代码如下:

$ sudo vi /etc/pam.d/system-auth
password sufficient pamunix.so sha512 shadow nullok tryfirstpass useauthtok remember=5

2.设置最短密码长度

找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “minlen=10” 的那行,它表示最小密码长度为(10 - 类型数量)。这里的 “类型数量” 表示不同的字符类型数量。PAM 提供4种类型符号作为密码(大写字母、小写字母、数字和标点符号)。如果密码同时用上了这4种类型的符号,并且 minlen 设为10,那么最短的密码长度允许是6个字符。

代码如下:

$ sudo vi /etc/pam.d/system-auth
password requisite pam_cracklib.so retry=3 difok=3 minlen=10

3.设置密码复杂度

找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1” 的那行,表示密码必须至少包含一个大写字母(ucredit),两个小写字母(lcredit),一个数字(dcredit)和一个标点符号(ocredit)。

代码如下:

$ sudo vi /etc/pam.d/system-auth
password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

4.设置密码过期限制

编辑 /etc/login.defs 文件,可以设置当前密码的有效期限。

代码如下:

$ sudo vi /etc/login.defs
PASSMAXDAYS 150 PASSMINDAYS 0 PASSWARNAGE 7

这些设置要求用户每6个月改变密码,并且会提前7天提醒用户密码快到期了。

如果想为每个用户设置不同的密码期限,使用 chage 命令。下面的命令可以查看某个用户的密码限期:

代码如下:

$ sudo chage -l localhost
# sudo chage -l 用户名
Last password change : Aug 29, 2021 Password expires :
never Password inactive : never Account expires :
never Minimum number of days between password change :
0 Maximum number of days between password change :
99999 Number of days of warning before password expires : 7
#最近一次密码修改时间		:8月 29, 2021
#密码过期时间			:从不
#密码失效时间			:从不
#帐户过期时间			:从不
#两次改变密码之间相距的最小天数	:0
#两次改变密码之间相距的最大天数	:99999
#在密码过期之前警告的天数	:7

默认情况下,用户的密码永不过期。

5.使用命令修改localhost用户的密码期限

代码如下:

sudo chage -E 11/30/2021 -m 5 -M 90 -I 30 -W 14 localhost

上面的命令将密码期限设为2021年11月30日。另外,修改密码的最短周期为5天,最长周期为90天。密码过期前14天会发送消息提醒用户,过期后帐号会被锁住30天。

设置完后,验证效果如下:

20211130003253.png


写在最后

以上就是对system-auth文件的基本介绍了,暂时先写这么多,后面也会进行完善。


你知道的越多,你不知道的越多,人才们的 【三连】 就是我创作的最大动力,我们下期见!


注:如果本篇博客有任何错误和建议,欢迎人才们留言,你快说句话啊!

参考:

  1. system-auth_CentOS 7 - 简书

  2. LINUX设置密码复杂度的文件/etc/pam.d/system-auth,具体需要怎么改?_百度知道

#转载请注明出处!
快来制作你的简历吧 ,请猛戳这里→点击在线制作
宝塔服务器面板,一键全能部署及管理,送你3188元礼包。请猛戳这里→点我领取

本文标题:《Linux配置文件详解 system-auth篇》作者:dongchenxuan
原文链接:https://blog.dongchenxuan.com/?id=59
特别注明外均为原创,转载请注明。

分享到微信

扫描二维码

可在微信查看或分享至朋友圈。

相关文章

发表评论:
验证码

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

dongchenxuan

dongchenxuan

你好,朋友

真是美好的一天!

访客信息

  • IP: 18.117.156.170
  • 地点: United StatesOhioDublin

标签列表

站点信息

  • 文章总数:69
  • 页面总数:2
  • 分类总数:19
  • 标签总数:34
  • 评论总数:7
  • 浏览总数:157370
您好,欢迎到访网站!
忘记密码

网站分类

文章归档

歌曲 - 歌手
0:00