CentOS修改密码不生效 – 原因分析与解决方法

CentOS修改密码不生效:排查与修复指南

问题现象描述

在CentOS系统中使用passwd命令修改用户密码后,新密码无法通过SSH登录或本地验证,系统仍然要求输入旧密码。

常见原因及解决方法

1. 密码策略限制

检查/etc/login.defs/etc/security/pwquality.conf文件:

# 查看最小密码长度
grep PASS_MIN_LEN /etc/login.defs

# 验证密码复杂度规则
cat /etc/security/pwquality.conf

若密码不符合策略要求,需调整参数或设置更高强度的密码。

2. PAM模块配置异常

检查/etc/pam.d/passwd文件配置:

# 查看PAM验证链
cat /etc/pam.d/passwd

# 典型有效配置示例:
# password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass

若存在pam_deny.so或错误模块引用,需修正配置后执行systemctl daemon-reload

3. SELinux安全策略拦截

# 临时禁用SELinux排查问题
setenforce 0

# 检查SELinux日志
grep AVC /var/log/audit/audit.log | audit2allow

若问题消失,需通过semanage调整策略或恢复默认文件上下文。

4. 文件权限异常

# 验证shadow文件权限
ls -l /etc/shadow

# 正确权限应为640且属主root
chmod 640 /etc/shadow
chown root:shadow /etc/shadow

# 检查文件锁定属性
lsattr /etc/shadow
chattr -i /etc/shadow

操作验证步骤

  1. 执行passwd [username]后立即检查/var/log/secure日志
  2. 通过su - [username]本地验证密码变更
  3. 重启SSH服务后测试远程登录:systemctl restart sshd

深度排查建议

  • 使用strace -f passwd [username]跟踪系统调用
  • 检查/etc/nsswitch.conf认证源配置
  • 确认未启用LDAP/AD等外部认证服务

寰宇互联服务器4核4G云服务器1元/月,网络稳定、抗DDos、国际BGP、性能强劲,十年服务经验QQ:97295700 微信:huanidc

阅读剩余
THE END