密碼安全升級後使用者無法使用crontab
我有一個機器正在從 CentOS 5 升級到 CentOS 6。在原始伺服器上,所有使用者都有 MD5 密碼。升級後的伺服器現在使用 SHA-512 密碼。
升級後修改密碼且輸入SHA-512密碼的使用者
/etc/shadow
可以使用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
是相同的。除了 IP 地址之外,dev 和 staging 盒應該是相同的。我懷疑我錯過了一些非常明顯和愚蠢的東西……所以我的問題是,如何為尚未更改密碼並經過 SHA-512 雜湊處理的使用者啟用對 crontab 的訪問?或者,我該如何解決這個問題?
發布問題後,我設法解決了這個問題。
事實證明,
/etc/shadow
受影響的 MD5 密碼使用者的條目在雜湊密碼重複後不知何故具有該欄位,導致 PAM 無法解釋該行。換句話說,一個糟糕的剪切和粘貼工作。我沒喝夠咖啡…
我也遇到了這個問題,結果發現 /etc/shadow 沒有該使用者的條目。使用 pwck 添加使用者,問題就解決了。