您如何设置密码要求(例如最小长度)?

您如何设置密码要求(例如最小长度)?

有没有办法设置最低密码要求,例如最小长度、密码中混合大小写字母数字和至少 1 个符号的要求,并在密码更改时强制执行?

答案1

Ubuntu 中的密码复杂性由 PAM 控制。不幸的是,PAM 的方法“典型地像 Unix”。这意味着它通过大量非常混乱的文件来传播其配置。

控制密码复杂度的文件是:

/etc/pam.d/common-password

有一行:

password [success=1 default=ignore] pam_unix.so obscure sha512

它定义了密码复杂性的基本规则。您可以通过将其更改为添加最小长度覆盖:

password [success=1 default=ignore] pam_unix.so obscure sha512 minlen=12

或任何你想要的最小值。如你所见,默认已经定义了一些基本的模糊规则。这些基本规则可以在以下位置看到:

man pam_unix

搜索“模糊”。

有大量的 pam 模块可以安装。

apt-cache search libpam-

应该向你展示一下。

恐怕你需要自己去找相关文档。不过“cracklib”是常见的附加内容。

更新:我应该指出,默认的“模糊”参数包括基于先前密码的复杂性测试和简单性测试(长度、不同类型字符的数量)。手册页中的示例显示了 cracklib 的运行情况。安装 libpam_cracklib 以使其正常运行。

此外,一旦您确定了要更改的内容,其他文件中的更改也是相同的,以便您可以对 SSH 和其他应用程序强制执行相同(或不同)的密码检查。

答案2

预安装的 PAM 模块允许您根据复杂性设置基本要求。有一个不错的模块,它是 pam_cracklib 模块的后继者 - pam_pwquality。要安装它,请输入以下内容

apt-get install libpam-pwquality

然后熟悉这个

man pam_pwquality

尤其是“选项”部分。

现在您可以在 /etc/pam.d/ 中编辑通用密码

vi /etc/pam.d/common-password

找到包含以下“password requisite pam_pwquality.so”语句的行,并在 pam_pwquality.so 后附加您的选项,如下所示

password        requisite         pam_pwquality.so minlen=16 ucredit=-4 retry=3

其含义为“密码长度至少为 16 个字符,其中至少 4 个是大写字母。提示用户输入密码 3 次。

pam_pwquality 允许您与其他模块(如 pam_pwhistory)结合使用,以创建更复杂的密码要求。祝您好运

答案3

密码值在文件中控制

/etc/pam.d/common-password

有关如何修改文件的更多信息,请参阅pam_unix 手册页

相关内容