如何使用 Linux Live CD 恢复 sudo 权限?

如何使用 Linux Live CD 恢复 sudo 权限?

我正在运行 Linux Mint 11,并且失去了使用的权限sudo,显然是由于我意外将自己从管理员组中删除而导致的。

当我使用groups命令列出我所在的组时,它只显示我的用户 ID 和 vboxusers。我想我错误地使用了 usermod 而不是 useradd 将我的 ID 放入 vboxusers 组中,所以我被从所有其他组中删除了。

我在网上找到的解决方案(如下所示:http://www.psychocats.net/ubuntu/fixsudo) 描述了在 GRUB 菜单中,选择恢复模式,获取 root 提示符,并使用该提示符将我的用户重新添加到组中。但是当我这样做时,它会要求输入 root 密码,但我不知道,因为 Linux Mint 和其他基于 Ubuntu 的发行版不允许您在安装期间查看或设置 root 密码。

我有 Linux Live CD,因此我可以通过这种方式获得 root 权限,但这无法让我通过命令行操纵 Mint 安装中的用户。但是,我可以使用它来编辑任何文件,那么我应该编辑哪个文件以及如何编辑它才能重新获得管理员(以及 sudo)权限?

我的 ID 仍在 sudoers 文件中,如cat /media/mint/etc/sudoers运行 live CD 时所示。

答案1

您必须启动恢复模式才能获得 root(系统范围)访问权限才能修复

如果您有单启动(Ubuntu 是您的计算机上唯一的操作系统),要显示启动菜单,您必须在启动期间按住 Shift 键。

从启动菜单中,选择恢复模式

选择恢复模式并等待所有启动过程完成后,您将看到几个选项。在这种情况下,您需要该Drop to root shell prompt选项。

/etc/group是定义系统上的组的文件

然后您可以使用adduser username admin将您的用户重新添加到管理员组。

或者,您可以使用命令安全地vigr编辑文件/etc/group

格式示例;

group-name:x:group-number:user1,user2
admin:x:110:username

答案2

我最近在 Ubuntu 16.04 上遇到了完全相同的问题。我将我的用户添加到没有该-a选项的组中,并将其从包括在内的所有其他组中移除sudo,因此失去了将其添加回来的 root 权限。

我发现解决这个问题的办法是启动恢复模式。但我做不到,因为我只有一个蓝牙键盘,它只有在我登录后才能工作。

我在另一个问题的答案中找到了解决这个问题的方法: https://askubuntu.com/a/435347/841719. 重新表述并略微修改上下文

  1. 启动 Live 媒体。您可以使用 Ubuntu USB。
  2. 打开终端
  3. 使用以下方法找出主磁盘(根分区“/”)的设备名称

    sudo fdisk -l
    
  4. 使用读/写模式将其安装在某处,以便我们可以使用它(*将磁盘更改为sda1驱动器的名称):

    sudo mount -o rw /dev/sda1 /mnt
    
  5. 使用 CD 插入已安装的驱动器cd /mnt
  6. 使用以下方式编辑组文件

    sudo gedit /etc/group 
    

    将您的用户名添加到重要组,如 sudo、admin 等。一旦获得 sudo,您就可以将其添加到稍后被删除的所有其他组。确保您遵循组文件的格式。
    格式示例:

    group-name:x:group-number:user1,user2
    admin:x:110:username
    
  7. 保存文件并退出

  8. 停止/mnt使用cd /
  9. 使用卸载驱动器umount /mnt(它给我抛出了一个错误,所以我忽略了这一步)
  10. 关闭电脑,移除可启动的实时 USB 并启动原生 Ubuntu。
  11. 现在你应该已经恢复了 sudo 权限。输入以下命令检查:

    sudo df
    

答案3

类似或可能相同的问题:由于某种原因,创建 USB live mint(在我的情况下是 mate+cinnamon)不允许您使用 sudo(因此您无法安装)。

疯狂的是你可以在非图形控制台中进行 su!

解决此问题:

  • 打开终端并输入passwd
  • 给 mint 设一个密码
  • Ctrl++进入非图形Alt控制台F1
  • 使用你的密码以 mint 身份登录
  • 输入su成为 root
  • 输入echo "mint ALL=(ALL:ALL) ALL" >> /etc/sudoers(带引号)

相关内容