密码组合策略修改说明
CentOS密码复杂度配置通过/etc/pam.d/system-auth文件中的pam_cracklib.so模块来实现。
vim /etc/pam.d/system-auth ,查看下文件内容。
新的配置在password requisite pam_pwquality.so后面添加即可。
配置参数:
retry=N:定义登录/修改密码失败时,可以重试的次数
difok=N:新密码必需与旧密码不同的位数 difok=3 新密码必须与旧密码有3位不同
minlen=N:新密码的最小长度
dcredit=N:当N>0时表示新密码中数字出现的最多次数;当N<0时表示新密码中数字出现最少次数;
ucredit=N: 当N>0时表示新密码中大写字母出现的最多次数;当N<0时表示新密码中大写字母出现最少次数;
lcredit=N: 当N>0时表示新密码中小写字母出现的最多次数;当N<0时表示新密码中小写字母出现最少次数;
ocredit=N:当N>0时表示新密码中特殊字符出现的最多次数;当N<0时表示新密码中特殊字符出现最少次数;
maxrepeat=N:拒绝包含多于N个相同连续字符的密码。 默认值为0表示禁用此检查
maxsequence=N:拒绝包含长于N的单调字符序列的密码。默认值为0表示禁用此检查。实例是'12345'或'fedcb'。除非序列只是密码的一小部分,否则大多数此类密码都不会通过简单检查。
enforce_for_root: 如果用户更改密码是root,则模块将在失败检查时返回错误。默认情况下,此选项处于关闭状态,只打印有关失败检查的消息,但root仍可以更改密码。不要求root用户输入旧密码,因此不会执行比较旧密码和新密码的检查
也可修改/etc/security/pwquality.conf文件,但改文件优先级低于上面。
密码过期策略修改说明
方法一
vim /etc/login.defs
含义如下:
PASSMAXDAYS 99999 #密码的最大有效期, 99999:永久有期
PASSMINDAYS 0 #是否可修改密码,0可修改,非0修改密码后下一次修改需间隔多少天后可修改
PASS_MIN_LEN 5 #密码最小长度,使用pam_cracklib module,该参数不再有效
PASSWARNAGE 7 #密码失效前多少天在用户登录时通知用户修改密码
方法二
执行
chage -M 60 root
chage命令用法参考链接:Linux chage命令用法_Ahuuua的博客-CSDN博客
实例
目标:root密码位数10位,至少包含一个大写字母(ucredit),一个小写字母(lcredit),一个数字(dcredit)和一个标点符号(ocredit),密码至少60天修改一次,新密码和旧密码不可相同 。
1)至少包含一个大写字母(ucredit),一个小写字母(lcredit),一个数字(dcredit)和一个标点符号(ocredit)
注意: 如果需要修改root用户密码必须满足密码策略,需加入enforce_for_root配置,修改密码时不满足策略,只会报错,而不会禁止修改。
2)密码至少60天修改一次:
但上面的今几天的验证后未生效,换了下面的:
换了之后的效果:
3)新密码和旧密码不可相同 :
配置为difok=1 有一位不相同。
由于改密码时不要求root用户输入旧密码,因此不会执行比较旧密码和新密码的检查 ,root新旧密码还是可以相同的,这个目前还不知道该怎么配置。