商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > Linux怎么禁止普通用户切换root

Linux怎么禁止普通用户切换root

  发布于2026-08-22 阅读(0)

扫一扫,手机访问

要直接禁止普通用户使用su命令切换到root用户,只需进行以下两步操作:首先,修改/etc/pam.d/su文件,启用pam_wheel.so校验;其次,在/etc/login.defs文件中设置SU_WHEEL_ONLY为yes。这两个步骤缺一不可,设置完成后,只有wheel组的成员才可以使用su命令,而root用户不受此限制。

Linux怎么禁止普通用户切换root

直接禁止普通用户用 su 切换到 root,靠改两个文件就行:/etc/pam.d/su/etc/login.defs。不改 SSH、不删 root 密码、也不依赖 sudo 配置——这是最干净、最底层的控制方式。

修改 /etc/pam.d/su 启用 wheel 组校验

这个文件决定 su 命令的身份验证逻辑。默认它放行所有用户,必须显式启用 pam_wheel.so 限制。

  • 打开 /etc/pam.d/su,找到这行(通常在开头附近):# auth required pam_wheel.so use_uid
  • 去掉开头的 # 取消注释,保存
  • 确保这一行在所有 auth 规则中靠前,否则可能被后续规则绕过
  • 如果系统里没有 wheel 组,usermod -aG wheel username 之前会失败,但不会报错——只是限制立即生效且无人能过

设置 SU_WHEEL_ONLY yes 防止 bypass

/etc/login.defs 里的 SU_WHEEL_ONLY 是个兜底开关。只开 PAM 不够,有些发行版(如 RHEL/CentOS)会忽略 PAM 的 required 而优先读这个标志。

  • echo "SU_WHEEL_ONLY yes" >> /etc/login.defs 追加(或手动编辑)
  • 注意:不能写成 SU_WHEEL_ONLY = yes 或带引号,必须是空格分隔的纯关键字+值
  • 该配置对 su 生效,但不影响 sudosu -c 等其他提权路径

验证和常见失败现象

改完立刻生效,不用重启服务,但容易卡在几个细节上:

  • 普通用户执行 su - 时提示 Permission denied,不是密码错——说明限制已起作用
  • 如果提示 su: Authentication failure,可能是 PAM 行写错了位置(比如放在 account 段而非 auth 段),或拼写错误(pam_wheel 写成 pam_well
  • root 用户自己执行 su - 不受影响,因为 pam_rootok.so 默认放行 uid=0
  • 日志看 /var/log/secure,搜 su:pam_wheel 能确认是否触发校验

需格外留意的是:wheel组自身并无实际的权限含义,它仅仅是一个“准入名单”。将用户添加到wheel组(usermod -aG wheel alice)后,该用户便能够执行 su 操作。然而,此时必须同步妥善管理好这个组的成员——一旦出现漏加或误加的情况,安全边界就会崩塌。

本文转载于:https://www.php.cn/faq/3030446.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注