修改linux系统用户密码长度和复杂性
之前在修改Linux密码长度的时候都是去修改/etc/login.defs文件的pass_min_len 参数,可是地球人都知道,这个参数根本不具备强制性,用户一样可以使用短密码.
真正要对密码复杂性进行限制,还需要cracklib来完成.
红帽的系统一般都已经安装了, 可以rpm -qa|grep crack来查看,一般是两个包
cracklib参数主要有:
1.debug
用于syslog日志记录
2.type=abcd
当修改密码时,典型的提示信息是:
New linux password:
Retype Linux password:
可以通过abcd来替换linux这个单词
3.retry=3
用户有几次出错的机会
4.difok=5
新密码中至少有几个字符是和以前的密码不同的.
5.difignore=3
忽略新密码中不同字符之前的几个字母.
6.minlen=8
最小密码长度
7.dcreditr=5
密码中最多几个数字
8.ucredit=5
密码中最多几个大些字母.
9.lcredit=5
新密码中最多几个消协字母
10.ocredit=5
新密码中最多几个特殊字符
11.use_authtok
使用密码字典中的密码
cracklib密码强度检测过程
首先检查密码是否是字典的一部分,如果不是,则进行下面的检查
1、密码强度检测过程
2、新密码是否旧密码的回文
3、新密码是否只是就密码改变了大小写
4、新密码是否和旧密码很相似
5、新密码是否太短
6、新密码的字符是否是旧密码字符的一个循环
例如旧密码:123
新密码:231
7、这个密码以前是否使用过
配置样例:
/etc/pam.d/system-auth
修改
password requisite /lib/security/$ISA/pam_cracklib.so retry=3
为
password requisite /lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 difok=5
在linux,设置密码复杂度的方法有几个
1. 一个是在/etc/login.defs文件,里面几个选项
PASS_MAX_DAYS 90 #密码最长过期天数
PASS_MIN_DAYS 80 #密码最小过期天数
PASS_MIN_LEN 10 #密码最小长度
PASS_WARN_AGE 7 #密码过期警告天数
2. 另外一个方法是,修改/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,因为root用户并不会受这些限制,它可以设置任意的密码。