Total Pageviews

Saturday 27 October 2012

修改用户的密码失败之解决

以root的身份重置一个用户的密码时,遇到了下面的提示:
#passwd username
Changing password for user username.
New UNIX password:
/usr/share/cracklib/pw_dict: error reading header
PWOpen: Success
密码只输入了一次,并且有“error reading header”的错误提示,试了一试,果然没有修改成功。
开始Troubleshooting:
1. 收集信息
/usr/share/cracklib/pw_dict 文件不存在,touch了一个,无效,问题依旧。
rpm -qf  /usr/share/cracklib
查到两个包:
cracklib-2.8.9-3.3
cracklib-2.8.9-3.3
cracklib-dicts-2.8.9-3.3
cracklib是用来“测试密码强度”的C功能库。
2. 怀疑是 /etc/pam.d/passwd 中出了问题(真敢怀疑,直接怀疑官方升级系统给升坏了)。
检查了一下,无果……
3. 会不会是文件损坏?
rpm -V cracklib
rpm -V cracklib-dicts
结果查到 cracklib-dicts 包
rpm -V cracklib-dicts
..5….T    /usr/share/cracklib/pw_dict.hwm
S.5….T    /usr/share/cracklib/pw_dict.pwd
S.5….T    /usr/share/cracklib/pw_dict.pwi
解决问题:
yum reinstall cracklib-dicts
或者
rpm -e  cracklib-dicts –nodeps
yum install cracklib-dicts
问题解决了。
小结:
1. 第一步应该先Google,关键字“ /usr/share/cracklib/pw_dict: error reading header”。
2. 不要总是先怀疑是别人的问题,特别是比自己更严谨的人。
深纠:为什么这个包会被损坏?

参考:
如何使用cracklib : http://englanders.us/~jason/howtos.php?howto=cracklib