从管理员组中删除后重新获得 Sudo 权限

ber*_*kes 8 root sudo

编辑用户时,我不小心将自己从管理员组中删除。现在我不能再使用sudo. 错误说:ber 不在 sudoers 文件中。此事件将被举报

我以救援模式启动,但是,当进入root prompt 时,它要求我输入 root 密码。我没有,并且提供了我自己的(第一个也是唯一的 ubuntu 用户)密码,它不允许进入。

我的硬盘是加密的,但只有/home/user部分,而不是整个磁盘,afaik。

我能做什么?

Oli*_*Oli 8

嗯,你已经涵盖了我首先建议的内容。如果整个磁盘没有加密(我不知道,那可能是标准协议),救援模式会麻烦你输入密码,这似乎很烦人。

我个人会跳入一个实时环境(通过 Live CD 或 Live USB),挂载文件系统(假设它没有加密)并编辑它的etc/group文件并将自己重新添加进去。结果行应该看起来像这样(尽管GID 可能不同):

admin:x:115:oli
Run Code Online (Sandbox Code Playgroud)

或者在 Ubuntu 12.04 上,找到sudo组而不是admin组的行。


或者,您可能可以chroot从 LiveCD 运行命令。(LiveCD 的 sudo 密码是空密码,提示时按回车)

sudo mount /dev/sdYY /mnt  # change sdYY to your root partition
sudo mount --bind /dev  /mnt/dev
sudo mount --bind /dev/pts  /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys  /mnt/sys
sudo chroot /mnt
Run Code Online (Sandbox Code Playgroud)
sudo adduser your-username admin
Run Code Online (Sandbox Code Playgroud)

对于 Ubuntu 12.04 及更高版本,将用户添加到sudo组而不是admin组:

sudo adduser your-username sudo
Run Code Online (Sandbox Code Playgroud)

chroot将您放在文件系统内的 root shell 中,因此应该让您做一些奇特的事情,例如将用户添加到组中。它对于修复启动问题最有用,但它可以做很多gubbins。


小智 7

在 grub 启动菜单中,按e编辑内核启动命令行并single在其末尾附加单词。这应该以单用户模式(以 root 身份)引导系统并允许您执行任何修改。