CentOS 8 su鉴定故障:排查与解决方法
现象描述
在CentOS 8系统中执行su
命令切换用户时,可能出现以下错误提示:
su: Authentication failure
su: Permission denied
此类问题通常与用户权限、安全策略或系统配置相关。
常见原因分析
- 用户未加入sudoers列表:目标用户未在
/etc/sudoers
文件中授权 - PAM模块限制:Pluggable Authentication Modules (PAM) 配置错误导致认证失败
- SELinux策略冲突:安全增强模块限制用户切换操作
- 密码策略限制:密码过期或复杂度规则导致验证失败
解决方案
1. 验证用户权限配置
检查目标用户是否被添加到wheel
组或/etc/sudoers
文件:
# 查看用户所属组
groups <用户名>
# 编辑sudoers文件(使用visudo命令)
visudo
确保包含以下配置:%wheel ALL=(ALL) ALL
2. 检查PAM认证配置
查看/etc/pam.d/su
文件,确认未禁用wheel
组权限:
# 确认此行未被注释
auth required pam_wheel.so use_uid
3. 调整SELinux策略
临时禁用SELinux测试是否为策略导致的问题:
setenforce 0
若问题消失,可通过以下命令永久修改策略:
sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
4. 重置用户密码
若密码过期或输入错误,使用root权限重置密码:
passwd <用户名>
操作验证
执行以下命令测试用户切换功能:
su - <目标用户名>
成功切换后立即退出:
exit
预防措施
- 定期检查
/etc/sudoers
文件语法:visudo -c
- 启用SSH密钥认证替代密码登录
- 监控
/var/log/secure
日志文件中的认证错误记录
总结
CentOS 8的su鉴定故障多源于权限配置与安全策略限制。通过分步检查用户组归属、PAM配置、SELinux状态及密码策略,可快速定位问题根源。建议在修改关键配置文件前进行备份,并优先使用临时策略调整进行问题排查。