我正在努力在 Ubuntu Server 16.04LTS 中实现密码质量要求。我已根据要求配置了“pwquality.conf”,并配置了“/etc/pam.d/common-password”,以将 pam_pwquality.so 添加到堆栈中。当我尝试使用明显不合适的密码更改用户的密码时,它会返回错误,指出它不符合要求,但无论如何都会批准它。
这是我的常用密码配置:
password requisite pam_pwquality.so retry=2
password [success=1 default=ignore] pam_unix.so obscure sha512 rounds=5000 remember=5
password requisite pam_deny.so
password requisite pam_permit.so
password optional pam_encrypt.so
我这个明显不符合要求的密码修改流程如下:
#sudo passwd test
New password:
BAD PASSWORD:The password contains less than 1 digits
Retype new password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
非常感谢您的帮助。谢谢!
答案1
您是否尝试在用户测试的用户空间内更改密码?如果您尝试通过 sudo/root 更改密码,则除非您在 pam_pwquality.so 调用后面添加额外的“enforce_for_root”,否则您将绕过规则。
您应该执行以下操作:
#> su test -
#> passwd
如果此后质量没有得到加强,那么您的配置中一定存在一些其他错误。
答案2
添加以下enforce_for_root短语:这可确保即使是root用户配置密码,也能遵守密码策略。