su命令切换用户无法使用,被拒绝
问题描述
su 命令报错 su: Permission denied
如下图:
su 命令 报错 su: Permission denied,不管是su普通用户还是root,都会报这个错误,可以确定的是密码是正确的,因为ssh可以正常登录,root用户 su 其他用户正常。
问题排查
1、首先确定su命令是否有s权限,路径/usr/bin/su
如下图可知,su命令的权限都是正常的有s权限。
2、其次要排除密码错误、密码过期、用户锁定等问题,
3、最后可能就是PAM模块限制的原因了
PAM(Pluggable Authentication Modules)负责系统中很多应用程序的登录认证,包括sshd、vsftpd、su等。例如ssh登录认证配置文件是/etc/pam.d/sshd用户可根据需要配置相应的认证规则。你也可以为自己的其他应用配置PAM认证。
查看su的PAM认证配置
cat /etc/pam.d/su
解决方法
su 的PAM配置文件中有auth required pam_wheel.so use_uid根据上一句的说明可以知道要使用su命令则该用户必须在wheel用户组中,而普通用户没有在wheel用户组中。
有两种方法可以解决这个问题。
一是注释该行,如下图所示。
二是将普通用户加入wheel组。
查看sudo权限 cat /etc/sudoers
usermod -a -G 用户名 用户组
将用户user 加入wheel组
usermod -a -G user wheel
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现