前几天,我们遇到一个问题。一个用户 jboss 要 su 到 root 用户时,我们输入正确的密码,报错如下: jboss@testdb ~l$ su -
Password:
su: Permission denied
这个问题,搞了多年 Linux 的我,还真的没有遇到过。
根据大模型的提示,我们发现,原因原来是这样:
jboss 用户没有在 wheel 组用户里。 wheel 是 Linux 系统预留的一个管理组。
而我们的操作系统启用了 pam_wheel 模块。
pam_wheel 是 Linux PAM(Pluggable Authentication Modules,可插拔认证模块)中的一个模块,用于限制哪些用户可以通过 su 命令切换到其他用户(尤其是 root)。
简单理解: pam_wheel 就是一道“su 权限门禁”,只有属于指定组(默认是 wheel 组)的用户,才允许执行 su - 切换到 root。
我们查看 /etc/pam.d/su,发现如下内容:
auth required pam_wheel.so use_uid
这表示我们的系统启用了 pam_wheel。只有 wheel 组成员,才可以 su - root。
如果不想启用这个模块,则最前面加上 # 注释即可。
解决方法: 将 jboss 用户加入 wheel 组:
usermod -aG wheel jboss
然后再 su - root 就可以了。