linux中wheel组是红帽系发行版管控特权的核心机制,通过pam限制su、sudoers授权sudo,并建议锁定root密码以统一走sudo审计。

Linux 中的 wheel 组是红帽系发行版(如 RHEL、CentOS、Rocky、AlmaLinux)中用于集中管控特权操作的核心机制。它本身只是一个普通用户组(GID 通常为 10),但通过 PAM 和 sudoers 的配合,可精准控制“谁可以 su 到 root”以及“谁可以通过 sudo 执行管理命令”。关键不在于创建组,而在于激活它的约束力。
启用 wheel 对 su 的限制
默认情况下,任何知道 root 密码的用户都能执行 su -,存在明显风险。要让 wheel 成为 su 的“白名单”:
- 编辑
/etc/pam.d/su,在文件开头添加一行:auth required pam_wheel.so use_uid - 该配置生效后,只有属于 wheel 组的用户才能成功运行
su -;非 wheel 用户即使密码正确,也会被拒绝 - 若只想限制 su 到 root(而非任意用户),可改用:
auth required pam_wheel.so use_uid group=wheel
将用户加入 wheel 组并验证
加入组是授权的前提,但需注意权限不会即时生效:
- 确认 wheel 组存在:
getent group wheel(无输出则用groupadd wheel创建) - 将用户加入:
sudo usermod -aG wheel username - 验证结果:
groups username应显示wheel;id username中应含10(wheel) - 新组权限需重新登录终端才加载——SSH 断开重连或本地注销再登录;临时测试可用
newgrp wheel(仅当前 shell 有效)
配置 sudoers 启用 wheel 的 sudo 权限
wheel 组的真正价值体现在与 sudo 的联动上,比单纯限制 su 更安全、更可审计:
- 运行
sudo visudo,找到并取消注释这一行:%wheel ALL=(ALL) ALL - 保存后,wheel 成员即可用
sudo command执行任意命令(需输入自己密码) - 如需免密,改为:
%wheel ALL=(ALL) NOPASSWD: ALL(慎用,建议仅限可信环境) - 如需精细化控制,可结合
Cmnd_Alias定义命令集,再绑定给 %wheel 或自定义组
彻底禁用 root 密码以封堵 su 路径
即使启用了 pam_wheel,只要 root 密码未锁定,本地控制台或物理访问下仍可能被绕过:
- 执行:
sudo passwd -l root,这会在/etc/shadow中 root 行第二字段前加! - 验证:
sudo grep '^root:' /etc/shadow输出应类似root:!$6$... - 此后
su -无论是否 wheel 成员,均提示 “Authentication failure” - 所有提权操作统一走 sudo,日志记录在
/var/log/secure或journalctl -u sudo中,便于追踪











