如何设置密码的要求(如最小长度)?
有没有办法设置最小密码要求,例如最小长度,混合案例字母数字的要求和密码中至少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和其他应用程序执行相同(或不同)的密码检查。
密码值在文件中控制
/etc/pam.d/common-password
有关如何修改文件的更多信息,请参阅pam_unix联机帮助页
预安装的PAM模块允许您根据复杂性设置基本要求。 有一个很好的模块,它是pam_cracklib模块的inheritance者–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等其他模块一起制作更复杂的密码要求。 祝好运