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

有没有办法设置最小密码要求,例如最小长度,混合案例字母数字的要求和密码中至少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等其他模块一起制作更复杂的密码要求。 祝好运