CentOS6.5下的用户密码策略
修改密码复杂度
不知从何讲起,直接贴配置文件吧
配置文件:/etc/pam.d/system-auth ,保存即生效
其实system-auth这个文件是个链接文件在同目录的system-auth-ac,这两个修改哪一个都行
1 #%PAM-1.0
2 # This file is auto-generated.
3 # User changes will be destroyed the next time authconfig is run.
4 auth required pam_env.so
5 auth sufficient pam_fprintd.so
6 auth sufficient pam_unix.so nullok try_first_pass
7 auth requisite pam_succeed_if.so uid >= 500 quiet
8 auth required pam_deny.so
9
10 account required pam_unix.so
11 account sufficient pam_localuser.so
12 account sufficient pam_succeed_if.so uid < 500 quiet
13 account required pam_permit.so
14
15 password requisite pam_cracklib.so try_first_pass retry=2 type=A+b+4+! difok=3 minlen=7 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 ##需要修改的行
16
17 password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
18 password required pam_deny.so
19
20 session optional pam_keyinit.so revoke
21 session required pam_limits.so
22 session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
23 session required pam_unix.so
注解:
我设置的策略是:修改密码可重新输入两次,修改密码时提示A+b+4+! ,新密码必须要和旧密码有3个字符不同,密码长度最低7位,最少包含1位大写数字,最少包含1位大写字母,最少包含1位小写字母,最少包含1位特殊字符
type=XXX 这个的意思就是修改密码时的提示符
retry=N: 此选项定义用户在重试输入多少次密码后,返回一个错误信息,然后不准继续输入。缺省是1次。
difok=N:此选项用来定义新密码中必须有几个字符要与旧密码不同,如果新密码中有1/2以上的字符与旧密码不同时,该新密码就会被接受。
minlen=N:此选项用来设置新密码的最小长度。
dcredit=N:此选项用来设定新密码中可以包含数字的最大数目。
ucredit=N:此选项用来设定新密码中可以包含的大写字母的最大数目。
lcredit=N:此选项用来设定新密码中可以包含的小写字母的最大数目。
ocredit=N:此选项用来设定新密码中可以包含的特殊字符的最大数目。
具体信息大家可以man pam_cracklib来获取帮助,但是有一点我觉得需要注意一下,就是关于密码长度的计算,官方的man解析很不好理解,你会发现dcredit,ucredit,lcredit,ocredit这些的值也可以设置为正数,也可以为负数
设置为正数,就非常不好理解,可以推荐大家看一下这个网友的博客记录:http://blog.sina.com.cn/s/blog_74bceb490102w4os.html
设置为负数,就代表为最少包含的位数,我这里是最少包含1位