问题描述
我今天在clean-installed 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.
有没有办法解决这个问题,还是我需要从头开始re-install?
最佳解决思路
-
在启动过程中,按住左侧的
Shift
键,您将看到GRUB菜单。 -
选择包含(恢复模式)的条目并等待。
-
您现在应该看到一个菜单。选择:
remount Remount / read/write and mount all other file systems
并等待您的文件系统以读/写权限挂载,然后按
Enter
。如果此选项未显示或不起作用,则可以选择
root
选项并使用以下命令安装系统分区:mount -o remount /
您可以使用
fsck
命令或通过查看/etc/mtab
来查看您的系统分区。成功运行mount命令(即没有错误消息)后,直接进入下面的步骤5。
-
选择
remount
选项后,菜单再次出现。选择:root Drop to root shell prompt
-
现在输入以下命令之一到您的用户re-add到
admin
组(对于Ubuntu 11.10及更早版本):adduser <USERNAME> admin
或者到
sudo
组(对于Ubuntu 12.04及更高版本):adduser <USERNAME> sudo
-
重新启动,您应该能够再次使用
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。
将文件系统挂载为read-write:
mount -o rw,remount /
之后,您可以再次将所需用户添加到admin
(或sudo
)组。
第三种解决思路
在做了同样的事情之后我尝试了各种组合,因为remount菜单选项似乎不在12.10中。我从root开始尝试了这篇文章中的所有其他内容。最后一个是
umount -a
mount -o -w /<path> /
这导致文件系统仍然是由于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访问似乎是password-protected。
所以我这样解决了问题:
-
在现场的usb棒上启动
-
打开一个壳
-
访问主要的HD Linux文件系统(您可以在GUI文件资源管理器的地址栏中找到它的安装点,通常在CTRL-L之后)。
cd
进去吧。 -
编辑文件
etc/group
(用nano etc/group
或其他任何东西) -
找到”sudo”线。应该看起来像
sudo:x:27:admin,bob,alice
-
将自己添加到
sudo
行,逗号分隔
当然,这意味着文件etc/sudoers
仍然保留该行
%sudo ALL=(ALL:ALL) ALL
意味着sudo
组的所有成员都具有完全控制权。首先检查一下。
工作顺利。