我更改了 /etc/sudoers,现在我无法以 sudo 身份运行

KSH*_*HMR 5 linux root sudo

我在sudoers不知道使用此链接做什么的情况下弄乱了文件

假设我做了最重要答案中的所有内容,并使用vim和 not编辑它visudo。我该如何解决?

我正在运行 Xubuntu 12.04,但我没有设置 root 密码。

ter*_*don 12

最简单的修复方法是从 Live CD 启动,然后安装本地驱动器并编辑或恢复到旧sudoers文件。

  1. 从 Live CD 启动

  2. 找到你的/分区。打开终端并运行lsblksudo fdisk -lblkid并确定您的根 ( /) 分区。对于这个例子,我假设它是/dev/sda1.

  3. 将根分区挂载到临时位置

    sudo mkdir /foo
    sudo mount /dev/sda /foo
    
    Run Code Online (Sandbox Code Playgroud)
  4. 现在分区已挂载,请检查/foo/etc目录。您可能有一个名为的文件/etc/sudoers~,它是您sudoers文件的备份。如果是这样,这可能会解决所有问题:

    sudo cp /foo/etc/sudoers~ /foo/etc/sudoers
    
    Run Code Online (Sandbox Code Playgroud)

    如果这不起作用,只需编辑文件并尽可能还原您的更改(或将其添加到您的问题中,我们可以帮助您解决)。如果您引入了有语法错误的行,请删除它们或通过#在开头添加来注释掉它们。如果您删除了授予您 sudo 权限的行,则可能是这样的(sudo您的用户所在的组在哪里,即在/etc/group以 开头的行中提到了您的用户名sudo:

    %sudo   ALL=(ALL:ALL) ALL
    
    Run Code Online (Sandbox Code Playgroud)
  5. 取出CD并重新启动。

  • 这不仅是正确的答案,而且是一个很好的学习体验 - 因为 OP 听起来像一个 Linux 新手,这很好地说明了在对根分区做了一些坏事后如何恢复。而且,幸运的是,弄乱 /etc/sudoers 是一个非常容易恢复的“坏事”。 (2认同)