pam_cracklib没有看到旧密码

时间:2013-07-17 19:41:44

标签: linux pam

我启用了Linux PAM(版本1.1.4)和cracklib(版本2.8.22)并且大多数工作正常。正在遵守通过PAM配置文件指定的所有密码复杂性(大写/小写,数字等),但不遵守“difok”。无论我将此选项设置为什么,pam_cracklib都会允许任何密码通过(前提是它符合我指定的其他复杂性要求)。

长话短说我不得不修改Linux PAM cracklib来添加一些调试并快速发现pam_cracklib FAILS能够检索OLD密码。它认为字符串是NULL,所以自然没有什么可以比较新密码。

然而,当用户更改自己的密码时,它正确地验证当前(将成为旧的OLD)密码,以便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

按方式:这一切都是通过前端应用程序以编程方式完成的。这不是可以在这种环境中以交互方式完成的事情。

有没有人对此有任何想法?

1 个答案:

答案 0 :(得分:0)

旧密码的散列版本存储在

的/ etc /安全/ opasswd

所以我会检查他们通常应阅读的文件的权限:

-rw -------。

另外(这是我认为的问题的关键)你必须将记忆字段添加到pam_unix模块:

pam_unix.so try_first_pass remember=3 use_authtok null debug   md5     shadow