0

0

sudoers 配置语法错误导致所有用户 sudo 失效的 recovery 单用户模式

冷炫風刃

冷炫風刃

发布时间:2026-01-21 20:15:49

|

105人浏览过

|

来源于php中文网

原创

当/etc/sudoers语法错误时,sudo命令全部失效,需进GRUB单用户模式修复:按Shift/Esc调出菜单→e编辑→linux行尾加init=/bin/bash→Ctrl+X启动→mount -o remount,rw /→visudo -c定位错误→vi修正→exec /sbin/reboot -f重启验证。

sudoers 配置语法错误导致所有用户 sudo 失效的 recovery 单用户模式

/etc/sudoers 文件语法错误时,sudo 会直接拒绝执行任何命令(包括 sudo susudo -i),所有普通用户将无法提权——但系统仍可正常启动和登录。此时需进入单用户模式(recovery mode)修复。

进入 GRUB 单用户模式(以 Ubuntu/Debian 为例)

重启机器,在 GRUB 启动菜单出现时按 Shift(BIOS)或 Esc(UEFI)调出菜单;用方向键选中当前内核条目,按 e 编辑启动参数;找到以 linux 开头的行,在行尾空格后添加:

  • init=/bin/bash(推荐,直接启动 bash,绕过 init 系统)
  • rd.break(RHEL/CentOS 8+)
  • systemd.unit=rescue.target(较新 systemd 系统,需 root 密码)

编辑完按 Ctrl+XF10 启动。若使用 init=/bin/bash,将直接进入 root shell,但根文件系统默认为只读。

重新挂载根分区为可写

执行以下命令(必须做,否则无法保存修复):

mount -o remount,rw /

验证是否成功:

mount | grep " / "

输出中应含 rw(而非 ro)。

修复 sudoers 文件

运行语法检查并定位错误:

Pebblely
Pebblely

AI产品图精美背景添加

下载
visudo -c

它会提示具体行号和错误类型(如 syntax error near line 25)。常见错误包括:

  • 漏掉 Defaults 或用户别名后的等号(如 Defaults env_reset 写成 Defaults env_reset 没问题,但写成 Defaults env_reset = 就错)
  • 权限行末尾多加逗号、分号或引号不匹配
  • 使用了未定义的别名(如 %webadmins ALL=(ALL) /usr/bin/systemctl,但没定义 %webadmins

vinano 编辑修复:

vi /etc/sudoers

⚠️ 务必用 visudo(而非直接 vim)编辑,因为它自带语法锁和自动备份;但单用户下 visudo 可能依赖终端环境,若报错可先用 vi 手动修正,再用 visudo -c 验证。

重启并验证

修复完成后,执行:

exec /sbin/init

或直接:

exec /sbin/reboot -f

系统重启后,用普通用户运行 sudo -lsudo whoami 测试是否恢复。

相关专题

更多
scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

188

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

288

2023.10.25

java中break的作用
java中break的作用

本专题整合了java中break的用法教程,阅读专题下面的文章了解更多详细内容。

118

2025.10.15

java break和continue
java break和continue

本专题整合了java break和continue的区别相关内容,阅读专题下面的文章了解更多详细内容。

256

2025.10.24

vim保存退出命令
vim保存退出命令

vim是一个非常强大的文本编辑器,常用于Unix和Linux系统。它是从vi发展而来的,相比vi有许多改进和扩展。在vim中,保存并退出的命令是:wq"wq"这个命令是由两个部分组成的。其中,"w"表示写入文件,将所做的更改保存到磁盘;而"q"表示退出vim编辑器。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

266

2023.08.01

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1351

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

704

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

AO3中文版入口地址大全
AO3中文版入口地址大全

本专题整合了AO3中文版入口地址大全,阅读专题下面的的文章了解更多详细内容。

1

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.5万人学习

Git 教程
Git 教程

共21课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号