如何将自己添加为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.
有没有办法解决这个问题,还是需要从头开始重新安装?
-
在启动过程中,按住左 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
-
现在输入以下命令之一,将您的用户重新添加到
admin
组(对于Ubuntu 11.10及更早版本):adduser
admin 或者到
sudo
组(对于Ubuntu 12.04及更高版本):adduser
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。
将文件系统挂载为读写:
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访问似乎受密码保护。
所以我这样解决了问题:
- 在现场的usb棒上启动
- 打开一个壳
- 访问主要的HD Linux文件系统(您可以在GUI文件浏览器的地址栏中找到它的安装点,通常在CTRL-L之后)。 进入它。
- 编辑文件
etc/group
(比如nano etc/group
或其他) - 找到“sudo”行。 应该看起来像
sudo:x:27:admin,bob,alice
- 将自己添加到
sudo
行,逗号分隔
当然,这意味着文件etc/sudoers
仍然保留该行
%sudo ALL=(ALL:ALL) ALL
意味着组sudo
所有成员都有完全控制权。 首先检查一下。
工作顺利。