限制密码长度的问题

限制密码长度的问题

我正在尝试限制我的远程控制框要求密码长度至少为 16 个字符,最多为 30 个字符。

我遵循了官方的密码策略部分用户文档并在 中设置以下内容/etc/pam.d/common-password

password        [success=1 default=ignore]      pam_unix.so obscure min=16 max=30 sha512

但是当我打开远程控制,作为普通用户,然后通过以下方式更改我的密码passwd,我只能8人物。

有人知道为什么最低16没有被识别或者是我忽略了什么?

操作系统是 Ubuntu Server 10.04。

答案1

这有点旧了,但为了帮助其他人,这是我发现的。

minlen不仅仅是一个基本的字符长度限制器,它更像是一个分数考虑到一系列标准

来源

minlen 复杂度度量的计算分为以下几个步骤:

  • 密码中的每个字符都得一分,无论字符类型如何
  • 每个小写字母加一分,但最高不超过lcredit
  • 每个大写字母加一分,但最高不超过ucredit
  • 每个数字加一分,但不超过dcredit
  • 每个特殊字符加一分,但最高不超过ocredit

我看到的minlen16允许密码8我输入的每个字符可获得 2 分。

这也记录在man 8 pam_cracklib

新密码的最小可接受长度(如果未禁用信用值,则为加一,这是默认设置)。除了新密码中的字符数外,还为每种不同类型的字符(其他、大写、小写和数字)提供信用值(长度为 +1)。此参数的默认值为 9,这对于所有字符类型相同的旧式 UNIX 密码来说很好,但可能太低而无法利用 md5 系统的附加安全性。请注意,Cracklib 本身有一对长度限制,一个“太短”的限制 4,它是硬编码的,另一个定义的限制(6)将在不参考 minlen 的情况下进行检查。如果您想允许密码短至 5 个字符,则不应使用此模块。

相关内容