在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用户并不会受这些限制,它可以设置任意的密码。 pam_cracklib.so pam_cracklib.so中有很多参数可以选择,具体配置如下: debug : 此选为记录Syslog日志。 type=safe : 输入新密码的时候给予的提示。 retry=N : 改变输入密码的次数,默认值是1。就是说,如果用户输入的密码强度不够就退出。可以使用这个选项设置输入的次数,以免一切都从头再来。 difok=N : 默认值为8。这个参数设置允许的新、旧密码相同字符的个数。 difignore=N : 多少个字符的密码应收到difok将被忽略。默认为23 minlen=N : 新的最低可接受的大小密码。除了在新密码的字符数。此参数的默认值是9,它是一个老式的UNIX密码的字符相同类型的所有好,但可能过低,利用一个MD5的系统增加安全性。 dcredit=N : 限制新密码中至少有多少个数字。 ucredit=N : 限制新密码中至少有多少个大写字符。 lcredit=N : 限制新密码中至少有多少个小写字符。 ocredit=N : 限制新密码中至少有多少个其它的字符。此参数用于强制模块不提示用户的新密码,但以前使用的堆叠模块提供的密码之一。 dictpath=/data/dict :密码字典,这个是验证用户的密码是否是字典一部分的关键