Linux上的pam_cracklib:如何禁用信用

pam_cracklib“minlen”不起作用,因为我想要它。 PAM允许密码的长度比“minlen”选项设置的长度小。 它给予“大写”,“小写”,“数字”和“其他字符”的信用(默认为1)。

因此,如果minlen设置为8,则允许以下密码有效:

  • 'abcdefg'(长度= 7 + 1使用小写字母)
  • 'abcde1'(长度= 6 +使用小写字母+ 1积分+使用数字1积分)
  • 'Abcd1'(长度= 5 +小写字母使用1分+使用数字+1分+大写字母使用)
  • 'Ab1 $'(长度= 4 + 1使用小写字符+ 1使用数字+ 1使用大写字符+ 1使用其他字符)

我不希望PAM给这些类的字符,并且希望严格按照指定强制执行minlen,而不pipe密码中使用什么types的字符。 我也尝试了以下设置,但是没有帮助:

password required pam_cracklib.so lcredit=0 dcredit=0 ucredit= ocredit=0 minlen=8 

您不必使用pam_cracklib来执行最小密码长度; pam_unix会很高兴地做到这一点。 只需使用min=8minlen=8 (在旧版本的PAM中min ;请检查您的pam_unix手册页)。

该configuration应该工作。 如果您以超级用户身份或超级用户权限执行此操作,则需要将enforce_for_root参数添加到pam_cracklib.so行。 否则,它会抱怨BAD PASSWORD ,但仍然会允许。