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


64

我今天干净安装了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.

有什么办法可以解决此问题,还是需要重新从头开始重新安装?

Answers:


65
  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 <USERNAME> admin
    

    或加入该sudo组(对于Ubuntu 12.04及更高版本):

    adduser <USERNAME> sudo
    
  6. 重新启动,您应该可以sudo再次使用。


3
如果看不到“重新安装”菜单,则可以先选择“ fsck”,它将重新安装文件系统以进行读取/写入。之后,您可以以root用户模式添加用户。
张洁静

1
这对我有用,除了我必须使用command挂载文件系统mount -o remount,rw /
Passuf '16

这很完美。而且,它看起来像是一个很大的安全问题。我猜您应该在明智的计算机上禁用此功能?-在恢复模式下,我永远无法重启。我总是要用reboot -f
罗曼·文森特

15

如果您的系统上启用了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)组。


但是我无法从我的用户访问sudo!
Jamie Hutber '18

7

在执行了相同的操作后,我尝试了各种组合,因为重新安装菜单选项似乎不在12.10中。我已经从根开始尝试了本文中的其他所有内容。最后是

umount -a
mount -o -w /<path> /

这导致在文件系统仍然RO由于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

2

老问题,但我也遇到了(Ubuntu 14.04)。

我无法登录恢复模式并无法访问根shell,正如这里和其他地方的许多答案所述:从GRUB进行的根shell访问似乎受到密码保护。

所以我这样解决了这个问题:

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

当然,这意味着文件etc/sudoers仍然包含该行

%sudo   ALL=(ALL:ALL) ALL

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

工作顺利。


0

我在将帐户添加到网上论坛时犯了同样的错误(忘记了-a)。我安装了系统,并锁定了root登录名,而我的帐户是计算机上唯一的帐户。

被接受的答案对我没有帮助。进入恢复模式时,我得到的只是一条无用的信息

根帐户已锁定,无法打开对控制台的访问。有关更多详细信息,请参见sulogin(8)手册页。
按ENTER键继续

在按ENTER键之后,系统正常启动:不能获得root用户访问权限来解决问题。如果有人到此为止都没穿上鞋子,我将留下这个答案。仅当无法通过Grub菜单进入恢复模式时,才使用以下选项

获得根shell的演练:

  1. 引导到Grub菜单,然后突出显示(但不要按Enter!)普通(默认,不是恢复!)引导选项。
  2. e。Grub将显示一个命令行编辑器,其中包含多行,如果不令人生畏的话,每一行可能看起来都不熟悉。不用担心,您所做的任何更改都不会永久保存。
  3. 找到显示的行linux ... ro ...。这是内核命令行。将ro令牌替换为rw,以使根文件系统可读/写,并添加另一个内核命令行参数init=/bin/sh。这指示内核执行sh而不是/sbin/init。最后,该行应类似于linux ... rw init=/bin/sh ...注意:即使没有grub>提示也可以通过。如果所有其他方法对您都没有帮助,我将乐于逐步解释。只需对此答案发表评论。
  4. 更改后,按键F10以使用编辑器中的命令来引导系统(或者,如果Grub的编译方式不同,请阅读编辑器窗口正下方的引导说明)。您将得到root shell提示,因为init进程以具有root身份的PID 1运行。
  5. 进行所需的更改,例如usermod -a -Gadm,sudo YOURUSERID。确认id -a YOURUSERID您已获得sudo会员资格。如果出现“找不到命令”错误,请使用/sbin/usermod/bin/id
  6. 此时,您不能干净地关闭或重新引导系统。reboothalt否则poweroff将无法正常运行,并且exit由于不希望PID 1进程直接退出,因此从外壳程序将导致内核崩溃。因此,您必须发出的下两个命令是:

    sync
    exec /sbin/init
    

    sync以防万一出问题,将所有更改保存到磁盘,然后exec用real替换外壳程序init(可以是systemd,upstart或System V init,但始终称为/sbin/init)。系统很可能会继续正常启动(无恢复模式)。

  7. 登录并重新启动系统一次,例如sudo reboot--您应该已经获得了sudo特权。建议重新启动,因为(尽管很少)init可能会在正常启动期间传递其他参数,而我们没有这样做。万一exec发生故障,只需重置计算机并使其正常启动即可。所有现代日志文件系统(例如ext4,xfs和btrfs)都可以快速恢复自身(如果sync在重置之前使用ed ,最多需要几秒钟的日志检查时间),您便会万事俱备。

有点背景

在Debian错误报告中,有一个关于此问题的讨论,据了解,这被确定为功能而非错误,我认为这是一个错误。从事这项业务已有25年,我不禁完全不同意该线程中消息#31中Michael Biebl的说法:

请考虑以下问题:您有一台笔记本电脑的root帐户已锁定。默认情况下,grub引导加载程序会生成用于救援模式的引导条目。因此,即使您锁定BIOS不允许从CD-Rom或USB引导,并且使用密码保护grub,如果您暂时不使用笔记本电脑,也可以轻易获得root访问权限。

费利佩·萨特勒(Felipe Sateler)在消息70中给出了正确的IMO(即使不够普遍)的反对意见:

对于许多(大多数?)计算机而言,物理访问意味着游戏失去了安全性,因为您只需拆开包装盒并获得硬盘驱动器即可。

迈克尔的论点中提到的笔记本电脑尤其如此:如果您暂时将其放在无人看管的地方,并且有人在追寻您的数据,那么笔记本电脑将被淘汰,再也不会被看到。对于任何机器,不是“很多”或“最多”的机器,即使是那些用8点螺栓固定在机架上的机器,一旦攻击者获得对机器的物理访问权,游戏就真正结束了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.