我需要配置一个 Ubuntu 服务器来遵循严格的公司密码策略,该策略规定如下:
- 至少一个大写
- 至少一个小写
- 至少一位数字
- 至少一个特殊字符
我环顾四周,只发现了指示用于指定密码长度;但是,关于上述几点,我还没有找到与指定密码内容相关的内容。
任何帮助,将不胜感激。
答案1
2023 年 1 月更新:该库pam_pwquality.so
在很多/大多数情况下已经取代了 的使用pam_cracklib.so
。pam_pwquality.so
应该向后兼容pam_cracklib
。请参阅pam_pwquality.so 手册页了解使用详情和示例。
密码复杂性由pam_cracklib
模块。
为了修改本地机器的密码策略,您需要修改/etc/pam.d/common-password
文件。
在终端窗口 ( ++ Ctrl)中输入以下命令:AltT
sudo vi /etc/pam.d/common-password
将以下行添加到文件(在pam_unix.so
主要用于身份验证的 PAM 模块之前或之后,如从联机帮助页中的示例所示)并保存文件:
password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
该语句实现了以下密码要求:
dcredit
== 数字ucredit
== 大写字符lcredit
==小写字符ocredit
== 其他字符(特殊字符,包括!
,
@
#
$
%
)
这应该可以满足你的要求。
您还可以使用变量minlength
来retries
进一步限制密码要求。
这是以这种方式修改密码策略的另一个很好的例子,即在文件中放置以下行/etc/pam.d/common-password
:
password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
此条目将设置最多三次尝试获取可接受密码的机会,密码长度至少为 10 个字符。
这要求用户的密码与上一个密码至少有三个字符不同。
这也将满足密码至少包含一个数字、一个小写字符和一个大写字符的要求。
另请参阅此文章在 Linux 中设置更强的密码策略规则。
答案2
有一个分叉pam_cracklib托马斯·玛耶兹 (Tomas Mraz):pam_pwquality有稍微好一点的选择。
添加它apt install libpam-pwquality
否则 passwd 会抱怨:
模块未知