添加 docker 后不再是 sudoers 列表的一部分

添加 docker 后不再是 sudoers 列表的一部分

当我尝试让 docker 在我的机器上运行时,我天真地用 sudo 运行了一些命令。现在,当我尝试 sudo 时,我收到此错误:

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

id 的输出是:gid=1000(dorsatum) groups=1000(dorsatum),999(docker)

组的输出为:dorsatum docker

我尝试通过 grub 编辑它,但没有成功。通过在恢复模式 shell 中转到 root shell,解决了许多问题。系统要求我输入维护密码,才不是接受我的常规密码,这ctrl+d是唯一可行的选择。

答案1

这有点麻烦,但过去我这样做过,而且还有重置 root 密码的额外好处。我不是用 Ubuntu 系统这样做的,但原理是一样的。

从实时 CD 启动,我认为这将安装您现有的 Linux 分区。如果没有,您需要手动安装它们。

从 shell

$ cp /PathToRootOfMountedDrive/etc/shadow /PathToRootOfMountedDrive/etc/shadow.bak

$ nano /PathToRootOfMountedDrive/etc/shadow

会有这样一行:

root:The Hashed Root Password:15841:0:99999:7:::

我们关心的是散列的 root 密码。如果您将其替换为星号 (*) 并保存,您应该能够重新启动安装并以 root 身份登录而无需密码。修改后的行应如下所示:

root:*:15841:0:99999:7:::

然后,你可以将自己添加回 sudoers 文件,不用$ useradd dorsatum sudo 说,完成后你应该设置一个 root 密码!

/etc/shadow 有一个很好的解释这里

答案2

您需要再次从安装介质启动才能修复此问题。您需要获得包含 Ubuntu 安装的分区的 root 写访问权限,因此请从安装介质(CD 或 USB)启动并临时挂载您的 ubuntu 分区。

$ sudo bash
# mkdir /mnt/ubuntu-main
# mount /dev/sda1 /mnt/ubuntu-main

当然,用你的 Ubuntu 安装的根分区替换 /dev/sda1。

# nano /mnt/ubuntu-main/etc/group

找到包含该组的行sudo(在我的系统上它显示sudo:x:27:<username>)并确保您的用户名 dorsatum 列在它旁边。

最后,卸载驱动器并重新启动进入 Ubuntu。您的用户现在应该再次成为 sudo 组的一部分。

相关内容