如何将自己添加为sudo用户?

我今天清理安装了Ubuntu 11.10,然后安装了VirtualBox。 这需要我将自己添加到vboxusers组,并且由于11.10似乎不再有用于将用户添加到组的图形应用程序,因此我运行以下命令:

sudo usermod -G vboxusers stephane 

这是个问题。 我现在看到我应该运行的是:

 sudo usermod -aG vboxusers stephane 

最终结果是我不再属于我应该进入的组。包括运行“sudo”所需的任何组。 当我现在以sudo运行任何命令时,我得到以下内容:

 $ sudo ls [sudo] password for stephane: stephane is not in the sudoers file. This incident will be reported. 

有没有办法解决这个问题,还是需要从头开始重新安装?

  1. 在启动过程中,按住 Shift键,您将看到GRUB菜单。

  2. 选择包含( 恢复模式 )的条目并等待。

  3. 您现在应该看到一个菜单。 选择:

     remount Remount / read/write and mount all other file systems 

    并等待您的文件系统以读/写权限挂载,然后按Enter键

    如果此选项未显示或不起作用,则可以选择root选项并使用以下命令装入系统分区:

     mount -o remount / 

    您可以使用fsck命令或查看/etc/mtab来查看哪个是您的系统分区。

    成功运行mount命令(即没有错误消息)后,直接进入下面的步骤5。

  4. 选择remount选项后,菜单会再次出现。 选择:

     root Drop to root shell prompt 
  5. 现在输入以下命令之一,将您的用户重新添加到admin组(对于Ubuntu 11.10及更早版本):

     adduser  admin 

    或者到sudo组(对于Ubuntu 12.04及更高版本):

     adduser  sudo 
  6. 重新启动,你应该能够再次使用sudo

如果在您的系统上启用了root登录,只需通过Control + Alt + F1删除终端,而无需登录X.以root身份登录,然后将所需用户添加到admin组(对于Ubuntu 11.10及更早版本):

 adduser desired_user_name admin 

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

 adduser desired_user_name sudo 

如果您没有启用root登录,只需从Grub中选择恢复模式,然后尝试root shell。

Root Shell

将文件系统挂载为读写:

 mount -o rw,remount / 

之后,您可以再次将所需用户添加到admin (或sudo )组。

在做了同样的事情之后我尝试了各种组合,因为remount菜单选项似乎不在12.10中。 我从root开始尝试了这篇文章中的所有其他内容。 最后一个是

 umount -a mount -o -w / / 

这导致文件系统仍然是由于fstab中的设置来启动ro文件系统错误我认为,它说明它似乎是挂载后的ro

我终于成功了

 mount -o rw,remount / 

虽然我不确定这与前一组命令有什么不同。

应用此变体后,将用户添加到admin (11.10和ealrier)或sudo (12.04及更高版本)组的方式相同:

 adduser username admin # 11.10 and earlier 
 adduser username sudo # 12.04 and later 

老问题也发生在我身上(Ubuntu 14.04)。

我无法登录恢复模式并获得对root shell的访问权限,因为此处和其他地方的许多答案都说明:GRUB的root shell访问似乎受密码保护。

所以我这样解决了问题:

  1. 在现场的usb棒上启动
  2. 打开一个壳
  3. 访问主要的HD Linux文件系统(您可以在GUI文件浏览器的地址栏中找到它的安装点,通常在CTRL-L之后)。 进入它。
  4. 编辑文件etc/group (比如nano etc/group或其他)
  5. 找到“sudo”行。 应该看起来像sudo:x:27:admin,bob,alice
  6. 将自己添加到sudo行,逗号分隔

当然,这意味着文件etc/sudoers仍然保留该行

 %sudo ALL=(ALL:ALL) ALL 

意味着组sudo所有成员都有完全控制权。 首先检查一下。

工作顺利。