我有一个盒子正在从CentOS 5升级到CentOS 6。在原来的服务器上,所有用户都有MD5密码。升级后的服务器现在使用 SHA-512 密码。
/etc/shadow
升级后改过密码且有SHA-512密码的crontab
用户可以成功使用,但没有改过密码且仍然有旧MD5密码的用户无法使用crontab
。他们收到的错误信息是:
Authentication service cannot retrieve authentication info
You (_username_) are not allowed to access to (crontab) because of pam configuration.
我看过/etc/pam.d/system-auth
(你也可以)但我不确定要调整什么以允许尚未更改密码的用户访问 crontab。
我很清楚我可以强制每个人更改他们的密码chage -d 0
,并且更改密码的用户将重新获得对 crontab 的访问权限(以及其他任何可能被破坏的内容)但是我有一些用户需要在他们之前编辑他们的 crontab下次登录,并crontab -e -u _username_
以 root 用户身份使用也会失败,并出现与上述完全相同的错误。
奇怪的是,这个问题并没有出现在我的开发箱中;就在部署之前,我在暂存箱上遇到过这个问题。使用旧 MD5 密码的开发箱上的用户可以很好地访问 crontab,并且/etc/pam.d/system-auth
是相同的。dev 和 staging box 应该是相同的,除了它们的 IP 地址。我怀疑我错过了一些非常明显和愚蠢的东西......
所以我的问题是,如何为尚未更改密码并经过 SHA-512 哈希处理的用户启用对 crontab 的访问权限?或者,我该如何解决这个问题?
发布问题后,我设法解决了这个问题。
事实证明,
/etc/shadow
受影响的 MD5 密码用户的条目在哈希密码重复后以某种方式具有该字段,导致 PAM 无法解释该行。换句话说,糟糕的剪切和粘贴工作。我还没喝够咖啡...
我也有这个问题,结果 /etc/shadow 没有该用户的条目。使用pwck添加用户,问题解决。
有同样的问题。如果您不需要一些确切的帐户密码,只需运行: