我启用了Linux (版本1.1.4)和cracklib (版本2.8.22),而且大多数情况都很好。通过PAM配置文件指定的所有密码复杂性都会被遵守(大小写、数字等),但是“difok”没有被遵守。无论我将此选项设置为什么,pam_cracklib都会允许任何密码通过(前提是它符合我指定的其他复杂性要求)。
长话短说,我不得不修改Linux破解库以添加一些调试,并很快发现pam_cracklib无法检索旧密码。它认为字符串是空的,所以很自然地没有什么可以比较新密码的。
然而,当用户更改自己的密码时,它将正确地验证当前密码(将成为旧密码),因此pam_unix正确地看到了旧密码。当密码到达PAM配置的pam_cracklib行时,密码似乎已经被删除了。
我正在努力弄清楚这是怎么/在哪里/为什么发生的。
下面是我的PAM配置文件中的相关密码行:
password requisite pam_cracklib.so debug reject_username\
minlen=6 ucredit=-1 lcredit=-1 difok=4 maxrepeat=2
password required pam_unix.so debug md5 shadow顺便提一下,这一切都是通过前端应用程序编程完成的。在这个环境中,这不是可以交互完成的事情。
有人对此有什么想法吗?
发布于 2013-10-29 21:50:24
旧密码的散列版本存储在
/etc/安全/开放d
所以我会检查他们通常应该读的文件上的烫伤情况:
-rw
此外(我认为这是问题的症结所在)您必须将“记住”字段添加到pam_unix模块中:
pam_unix.so try_first_pass remember=3 use_authtok null debug md5 shadowhttps://stackoverflow.com/questions/17708819
复制相似问题