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


18

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

Answers:


21

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和其他应用程序强制执行相同(或不同)的密码检查。


据称man pam_unix,如果您搜索,默认密码minlength为6个字符minlen
蒂莫

这不适用于ubuntu 18.04-即使使用此设置,我也可以输入我想要的任何密码(短,回文,..)-我只需要重复输入4x密码:(
xhudik

当您说“不起作用”时,您的意思不清楚。您是说它确实有效,但是重复输入短密码4次是某种“绕过”-如果这样,那么,您错了,那仍然是一个强密码。否则,可以请您澄清一下吗?
朱利安·奈特

1

密码值在文件中控制

/etc/pam.d/common-password

有关如何修改文件的更多信息,请参见pam_unix联机帮助页。


1
您已列出pam_unix(5),正确的页面是pam_unix(8)linux.die.net/man/8/pam_unix。实际上,由于某些原因,联机帮助页的版本似乎并未列出“模糊”参数的重要部分-我已将其包含在答案中。如果您执行man pam_unix,则可以看到它。
朱利安·奈特

1
@JulianKnight感谢您的评论。我修复了链接:)
米奇

1

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

apt-get install libpam-pwquality

然后熟悉这个

man pam_pwquality

尤其是在“选项”部分。

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

vi /etc/pam.d/common-password

找到包含以下“ password Requirement pam_pwquality.so”语句的行,并在pam_pwquality.so之后附加这样的选项

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

代表“密码的最小大小为16个字符,其中至少4个字符为大写。提示用户输入密码3次。

pam_pwquality与pam_pwhistory等其他模块结合使用,可以使密码要求更为复杂。祝好运

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.