普通用户无法通过su切换到root
普通用户无法通过su切换到root
普通用户无法通过 su
切换到 root
是 Linux 系统设计中常见的安全措施,尤其是在 Ubuntu 及其衍生版(如 Mint)中。原因和解决方法如下:
主要原因:
Root 账户默认被禁用
- Ubuntu 等系统默认不设置 root 密码,因此无法直接用
su
切换。 - 目的是强制用户通过
sudo
执行特权命令,减少安全风险。
- Ubuntu 等系统默认不设置 root 密码,因此无法直接用
用户不在
sudo
组- 只有属于
sudo
组(或wheel
组,取决于发行版)的用户才能使用sudo
或su
。
- 只有属于
错误的密码
- 若已启用 root 账户但切换失败,可能是密码输入错误(注意:
su
需输入 root 密码,而非用户密码)。
- 若已启用 root 账户但切换失败,可能是密码输入错误(注意:
解决方案:
1. 使用 sudo
临时获取 root 权限(推荐)
1 | sudo -i # 切换到 root 环境(输入当前用户密码) |
✅ 前提:当前用户必须在
sudo
组中(Ubuntu 安装时创建的第一个用户默认加入该组)。
2. 为 root 设置密码(不推荐)
如果确实需要启用 root 账户:
1
sudo passwd root # 设置 root 密码(需当前用户有 sudo 权限)
之后可用 su
切换:
1
su - # 输入刚设置的 root 密码
⚠️ 警告:启用 root 账户可能带来安全风险,建议仅在必要场景使用。
3. 将用户加入 sudo
组
若当前用户无权使用 sudo
:
1
2su - 已有管理员用户名 # 用已有管理员账户切换到 root
usermod -aG sudo 你的用户名 # 将用户添加到 sudo 组
退出后重新登录即可生效。
4. 检查 PAM 配置(罕见情况)
某些系统可能通过 PAM 模块限制 su
:
- 检查
/etc/pam.d/su
文件,确保没有类似auth required pam_wheel.so
的规则(该规则会限制仅wheel
组成员可用su
)。
常见错误信息及原因:
su: Authentication failure
→ root 密码未设置或输入错误。su: Permission denied
→ 当前用户无权使用su
(不在sudo
或wheel
组)。[用户名] is not in the sudoers file
→ 用户未被授予sudo
权限。
最佳实践:
- **优先使用
sudo
**:避免直接使用 root 账户,降低误操作风险。 - 仅临时启用 root:如必须使用
su
,完成后立即用passwd -dl root
锁定 root 账户。 - 审计 sudo 权限:定期检查
/etc/sudoers
文件(通过sudo visudo
编辑),确保权限分配合理。
💡 在 Ubuntu 等系统中,
sudo su
是最常用的切换方式,它利用当前用户的sudo
权限切换到 root,无需预先激活 root 账户。
如果问题仍未解决,请提供以下信息:
- 使用的 Linux 发行版(如 Ubuntu/CentOS)。
- 执行
su
时返回的错误信息。 - 当前用户是否能用
sudo
(例如执行sudo ls
测试)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Helloeuler!