Answers:
密码复杂度由pam_cracklib
模块强制执行。
为了修改本地计算机的密码策略,您将需要修改/etc/pam.d/common-password
文件。
在终端窗口(Ctrl+ Alt+ T)中,输入以下命令:
sudo -i gedit /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中设置更强的密码策略规则的本文。
root
用户可以忽略密码要求...是否也可以为root用户强制执行此操作?
Tomas Mraz 有一个pam_cracklib的分支:pam_pwquality有稍微更好的选择。
用apt install libpam-pwquality
或passwd 添加它会抱怨:
模块未知