You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

误修改/etc/sudoers文件丢失sudo权限且root账户禁用的修复求助(Ubuntu 22.04)

误修改/etc/sudoers文件丢失sudo权限且root账户禁用的修复求助(Ubuntu 22.04)

问题描述

我刚才排查其他用户sudo权限问题的时候,不小心把/etc/sudoers里的%sudo ALL=(ALL:ALL) ALL这行的%给删掉了,结果现在自己完全失去sudo权限了!

执行sudo命令时会弹出:

"xxxx is not in the sudoers file. This incident will be reported."

尝试用su切换到root账户时,又提示:

"su: Authentication failure"

查了资料后知道这是因为Ubuntu默认禁用了root账户导致的。我还试过用pkexec visudo来修复,结果报错:

"Error executing command as another user: Not authorized"

之前搜过修改无效sudoers文件的相关方案,但都没解决我的问题,有没有大佬能给我出出主意?我用的是Ubuntu 22.04,万分感谢!

可行修复方案

针对Ubuntu 22.04的情况,推荐两种可靠的修复方式:

方案一:通过单用户恢复模式修复

这是最便捷的方式,不需要额外介质:

  • 重启系统,在GRUB启动菜单(如果没显示,重启时按住Shift键)选择「Ubuntu 高级选项」,再选「recovery mode」进入恢复模式。
  • 在恢复菜单中选择「root」选项,进入root权限的命令行(此时系统分区是只读状态)。
  • 先将系统分区挂载为可读写:
    mount -o remount,rw /
    
  • 用visudo编辑sudoers文件(这个命令会自动检查语法,避免出错):
    visudo
    
  • 找到你修改的那一行,把%加回去,恢复成%sudo ALL=(ALL:ALL) ALL,按Ctrl+O保存,回车确认,再按Ctrl+X退出。
  • 最后重启系统:
    reboot
    

方案二:通过Live USB/CD修复

如果单用户模式无法进入,可以用Ubuntu安装介质来修复:

  • 制作Ubuntu 22.04的Live USB,插入后从USB启动,选择「Try Ubuntu」进入试用模式。
  • 打开终端,用lsblk命令查看你的系统分区(通常是/dev/sda1或者/dev/nvme0n1p2这类,根据容量判断)。
  • 将系统分区挂载到/mnt目录:
    sudo mount /dev/你的系统分区路径 /mnt
    
  • 挂载必要的系统目录,确保chroot环境正常:
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    
  • 切换到系统的根环境:
    sudo chroot /mnt
    
  • 现在用visudo编辑sudoers文件,恢复%sudo ALL=(ALL:ALL) ALL这一行,保存退出。
  • 退出chroot并重启系统:
    exit
    sudo reboot
    

备注:内容来源于stack exchange,提问作者physicist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 15:42:57