如何将自己添加到sudoers组?

可能重复问题: 如何将用户添加到“sudo”组? 我按照这个链接的步骤,把自己重新加入了管理员组。
但是我仍然无法执行诸如以下命令的操作:
sudo aptitude update

我收到了信息
oshirowanen is not in the sudoers file.  This incident will be reported.

我现在已经是管理员组的成员,怎样将自己加入sudoers组?


似乎是一个重复的问题,但找不到它。 - Tachyons
@tachyons 你可能在想到一个关于类似但不同错误的问题。在那里,语法错误阻止了sudo的运行。而在这里,实际上可能缺少了一些条目。因此,我认为一个最佳答案应该解释如何添加通常的条目以允许管理员使用sudo。我已经尝试了这样一个答案。我不建议将这个问题作为那个问题的重复,因为与一个“小”的语法错误不同,那里的答案并没有解释如何进行编辑。 - Eliah Kagan
将用户添加到正确的组后,我仍然需要重新启动Ubuntu才能使更新后的组文件得到识别。仅仅退出并重新登录是不够的。 - MarkHu
2个回答

以root用户登录或使用su命令获取root权限提示符

输入visudo

一个编辑器将打开,找到一行写着的内容

root ALL=(ALL) ALL

在下面添加一个带有您的用户名的内容

user ALL=(ALL) ALL

输入ctrl+x,然后输入Y以确认。

26不是将adduser <user> sudo更有意义吗?也就是让他成为adminsudo组的成员?否则我觉得有点多余。 - 0xC0000022L
我同意。在我看来,那将是最好的解决方案。 - Victor
2另外,ctrl+x并不能退出visudo。而是使用:wq命令。 - Giorgi Tsiklauri

如果您属于“admin”组(或以Ubuntu 12.04开始的“sudo”组),但该组在“/etc/sudoers”中没有配置为能够使用“sudo”以root身份运行命令,您可以通过与修复一个“损坏”的“sudoers”文件相同的方式来解决此问题。
pkexec visudo

然后只需编辑sudoers文件以添加所需的任何条目。特别是:
  • 在 Ubuntu 12.04 之前的系统,或者那些从 12.04 之前的版本升级而来的系统,应该有以下内容:

    # admin 组的成员可以获得 root 权限
    %admin ALL=(ALL) ALL
    
  • Ubuntu 12.04 及更高版本应包含以下内容(即使它们也具有上述行,因为它们是从早期版本升级而来):

    # 允许 sudo 组的成员执行任何命令
    %sudo   ALL=(ALL:ALL) ALL
    
这个 pkexec 方法(在桌面系统上)有效,因为安装有图形界面的Ubuntu系统为管理员执行以root身份进行操作提供了两种独立的机制:sudoPolicyKit
如果你感兴趣并想要更多信息,请参考这个关于一个不同但类似问题的问题:

%sudo这一行在10.04之前就已经存在了。唯一需要做的就是将用户添加到sudo组中(adduser <user> sudo)。对于pkexec,仍然+1。 - 0xC0000022L
@0xC0000022L %admin 行也存在。这个问题是关于一个系统,其中这些行已经被删除、注释或修改,因此它们不再起作用。你是对的,将 sudo 行放在 Ubuntu 12.04 之前的 sudoers 文件中可能是个好主意,但实际上并没有太大关系。相比之下,在任何用户通过加入 admin 组而成为管理员的系统中,需要%admin 行;在用户通过加入 sudo 组而成为管理员的系统中,需要%sudo 行。 - Eliah Kagan