我发现我的系统(作为大多数现代 Linux)使用PAM
(Pluggable Authentication Modules)和其中的pam_cracklib
模块。pam_cracklib
无论参数如何,都强制执行最小长度为 6 个符号,因此解决方案是将其关闭。
我读过的一个链接讨论了 中的编辑password-ac
和system-ac
文件/etc/pam.d
,这两个文件的内容是相同的,并且没有说明它们各自的作用。
通过研究PAM
文档(Linux-PAM 系统管理员指南 | linux-pam.org),我了解到PAM
LINUX 服务的配置位于该/etc/pam.d
目录中的单独文件中。我看到了passwd
文件,并且只找到了system-ac
提到的文件(通过substack
关键字添加),所以在我的系统上我只需要编辑system-ac
.
制作pam_cracklib
optional
没有区别(我猜这是因为pam_cracklib
没有将输入和拒绝的密码传递给堆栈中的下一个模块 - pam_unix
)并且注释行pam_cracklib
导致passwd
运行期间出错。我注意到下一行带有普通的pam_unix
had 选项use_authtok
(文档:强制模块将新密码设置为以前堆叠的模块提供的密码)。删除该选项并注释行后,pam_cracklib
我现在可以使用passwd
.