linux(centos)下密码有效期和密码复杂度设置
原文链接:https://www.cnblogs.com/mihoutao/p/13131561.html
1、密码有效期
方法一:
chage -l 用户名 查看用户的过期时间
chage -M 99999 用户名 用命令修改过期时间为永久
chage -M 90 用户名 设置密码有效期为90天
chage -d 0 用户名 强制用户登陆时修改口令
chage -d 0 -m 0 -M 90 -W 15 用户名 强制用户下次登陆时修改密码,并且设置密码最低有效期0和最高有限期90,提前15天发警报提示
chage -E '2020-09-30' 用户名 这个账号的有效期是2020-09-30
方法二:
vim /etc/login.defs
PASS_MAX_DAYS 90 #密码最长过期天数
PASS_MIN_DAYS 80 #密码最小过期天数
PASS_MIN_LEN 10 #密码最小长度
PASS_WARN_AGE 7 #密码过期警告天数
2、设置复杂度
方法一:(这个没有成功过,尝试方法二成功了)
pam_cracklib.so 才是控制密码复杂度的关键文件/lib/security/pam_cracklib.so
[root@DB-Server security]# man pam_cracklib
retry=N 改变输入密码的次数,默认值是1。就是说,如果用户输入的密码强度不够就退出。可以使用这个选项设置输入的次数,以免一切都从头再来 minlen=N 新密码最小长度 difok=N 默认值为10。这个参数设置允许的新、旧密码相同字符的个数。不过,如果新密码中1/2的字符和旧密码不同,则新密码被接受 dcredit=N 新密码中数字个数 ucredit=N 新密码中大写字符个数 lcredit=N 新密码中小写字符个数
ocredit=N
新密码中特殊字符个数
方法二:修改/etc/pam.d/system-auth文件
vim /etc/pam.d/system-auth
找到 password requisite pam_cracklib.so这么一行替换成如下(没有就直接新增一行吧):
password requisite pam_cracklib.so retry=5 difok=3 minlen=10 ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict
参数含义:
尝试次数:5
新旧密码最少不同字符:3
最小密码长度:10
最少大写字母:1
最少小写字母:3
最少数字:3
密码字典:/usr/share/cracklib/pw_dict
注意:管理员root去修改用户密码时,虽然会提示密码不符合,但是最终密码会修改成功,因为管理员会跳过规则,所以修改密码时用非管理员账号是符合这个规则的