修改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密码强度检测过程
首先检查密码是否是字典的一部分,如果不是,则进行下面的检查
|
|
/|/
密码强度检测过程
|
|
/|/
新密码是否旧密码的回文
|
|
/|/
新密码是否只是就密码改变了大小写
|
|
/|/
新密码是否和旧密码很相似
|
|
/|/
新密码是否太短
|
|
/|/
新密码的字符是否是旧密码字符的一个循环
例如旧密码:123
新密码:231
|
|
/|/
这个密码以前是否使用过
配置样例:
/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