Linux 上的 pam_cracklib:如何禁用信用

Linux 上的 pam_cracklib:如何禁用信用

pam_cracklib 'minlen' 无法按我期望的方式工作。PAM 允许密码长度甚至小于使用 'minlen' 选项设置的长度。它为“大写”、“小写”、“数字”和“其他字符”赋予信用(默认为 1)。

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

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

我不希望 PAM 为这些类型的字符提供信用,并且希望严格执行指定的 minlen,而不管密码中使用了哪种类型的字符。我也尝试了以下设置,但没有帮助:

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

答案1

您不必使用pam_cracklib来强制执行最小密码长度;pam_unix很乐意这样做。只需使用min=8minlen=8(它min在旧版本的 PAM 中;请查看您的pam_unix手册页)。

答案2

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

相关内容