要限制仅 wheel 组用户可 su - 切换到 root,需确保 /etc/pam.d/su 含 auth required pam_wheel.so use_uid,并将用户加入 wheel 组;su username 不受限制,su - 才触发检查;免密需加 trust 参数但不推荐。

要通过 pam_wheel 模块限制仅允许特定特权组(如 wheel)的用户使用 su 切换到 root 或其他用户,关键在于正确配置 PAM 策略并确保系统用户归属合理。
确认系统使用 pam_wheel 控制 su 认证
大多数主流 Linux 发行版(如 RHEL/CentOS、Fedora、Arch)默认在 /etc/pam.d/su 中启用了 pam_wheel.so。需检查该文件是否包含类似以下行:
auth required pam_wheel.so use_uid
若存在且未被注释,则表示启用限制:只有属于 wheel 组的用户才能成功执行 su -(切换到 root)。注意:su username(非 root 目标)不受此限制影响,除非额外配置。
将授权用户加入 wheel 组
仅当用户是 wheel 组成员时,pam_wheel 才会放行。添加方式如下:
-
临时查看当前 wheel 成员:
getent group wheel -
将用户 user1 加入 wheel 组:
usermod -aG wheel user1 - 验证生效:新用户需重新登录或启动新 shell 才能继承组权限
区分 su 和 su - 的行为差异
su(不带 -)默认不读取目标用户 shell 环境,部分系统对其权限控制更宽松;而 su -(或 su -l)模拟完整登录,严格触发 pam_wheel 检查。建议统一要求管理员使用 su -,并在文档或规范中明确。
可选:启用 trust 跳过密码验证(谨慎使用)
若希望 wheel 组成员免密执行 su -,可在 pam_wheel 行后追加 trust 参数:
auth [success=ignore default=bad] pam_wheel.so use_uid trust
但该做法降低安全性,生产环境不推荐。更安全的做法是结合 sudo 实现细粒度提权,并禁用 su。










