在CentOS下设置密码复杂度分为两步
(1)修改/etc/login.defs文件
vim /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文件
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
使用vracklib检查密码复杂度
$ sudo yum install cracklib # 安装cracklib
$ echo "mypassword" | cracklib-check # 密码为mypassword时,检查情况
password: it is based on a dictionary word # 它基于字典单词
$ echo "123" | cracklib-check # 密码为123时,检查情况
123: it is WAY too short # 密码太短了
$ echo "ME$2w!@fgty6723" | cracklib-check # 密码为ME$2w!@fgty6723,检查情况
ME!@fgty6723: OK # OK,说明复杂度很好
使用pwscore检查密码复杂度
$ sudo yum install libpwquality # 安装pwscore
$ echo "password" | pwscore # 给密码password打分
Password quality check failed: # 密码特性查检失败
The password fails the dictionary check - it is based on a dictionary word # 密码是一个字典
$ echo "123" | pwscore # 给密码123打分
Password quality check failed: # 密码检查失败
The password is shorter than 8 characters # 密码太短,少于8位字符
$ echo "ME!@fgty6723" | pwscore # 给密码ME!@fgty6723打分
90 # 90分