今天,我尝试使用 passwd 更改实验室服务器 (SUSE) 上的密码,但收到错误消息,提示我的密码“基于字典单词”,但事实并非如此。我想更改和调整设置密码的这些约束和限制(我是管理员),想知道如何做到这一点?
更新:在我的 /etc/security/pam_pwcheck.conf 中发现此行:
password: nullok use_cracklib
有什么办法可以让它仅对此发出警告而不是阻止我设置密码?
更新 2:还在 /etc/pam.d/common-password 中发现了这一点:
password required pam_pwcheck.so nullok
password required pam_unix2.so nullok use_authtok
如果我删除 use_cracklib 参数,则会删除检查。我尝试添加:
password optional pam_cracklib.so
但它没有帮助。我已经禁用了 cracklib 功能,但现在我甚至没有收到警告。
更新 3:
尝试了这个(/etc/pam.d/common-password):
password optional pam_pwcheck.so nullok
password required pam_unix2.so nullok use_authtok
和(/etc/security/pam_pwcheck.conf):
password: use_cracklib nullok
然而,这并没有产生预期的效果,我仍然不能忽略警告。
答案1
使用password optional pam_cracklib.so
不会帮你完成。你需要password optional pam_pwcheck.so
在其中放入一个,这样它才会真正起作用。如果它后面跟着一行pam_unix.so
,它应该会按照你想要的方式工作。
答案2
嗯,这取决于系统身份验证配置。您运行的是哪个版本的 SuSE?
在我的 SuSE (10.1) 上,身份验证是通过 PAM 处理的,就像几乎所有现代 Linux 发行版一样。在那里,身份验证是通过 /etc/pam.d/ 中的文件配置的。
每个“服务”都有一个文件。您感兴趣的是 /etc/pam.d/passwd,在我的系统中,它引用(通过包括 common-password)PAM 模块pam_pwcheck
。这是强制执行 pw 规则的模块。请参阅man pam_pwcheck
如何配置它。
如果您有不同的 PAM 配置,您可能会使用不同的机制,但基本思想是相同的。
答案3
来自 passwd 手册页:
然后,测试密码的复杂性。一般来说,密码应由 6 到 8 个字符组成,其中包括以下每个集合中的一个或多个字符: · 小写字母 · 数字 0 到 9 · 标点符号
在 Sun Solaris 上,可以通过 /etc/defaults/passwd [1] 控制该行为。
另外,在我的 Debian 系统上有一个 /etc/login.defs 文件,它可以有 PASS_MIN_LEN 选项,尽管 login.defs 文件的手册说它不再被 passwd 使用并指向 /etc/pam.d/passwd。
我不知道如何通过 /etc/pam.d/passwd 配置此行为。