如何将用户添加到“ sudo”组?


186

/etc/sudoers我看到的是:

# Allow members of group sudo to execute any command after they have
# provided their password
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL

那么如何将用户添加到该sudo组?


这里是否还有其他人试图让sudo在ubuntu 17上没有密码就可以工作?
亚当

@AdamF 看看这里。下次问一个新问题是否需要更快的响应。 ;-)
Fabby

Coffe-grinder:您会介意将接受程度更改为最高评价的答案,因为这是一种更好的方法?(完全没有密码)
Fabby

Answers:


249
sudo usermod -aG sudo <username>

a非常重要。没有它,它们将从所有其他组中删除。您将需要重新启动外壳程序/终端或注销然后重新登录才能生效。

也可以看看:


我按照您的建议做了,但是航站楼告诉我bash: sudo: command not found,为什么?
Teifi

@Teifi,这意味着您可能尚未sudo安装,或者由于某些奇怪的原因,它不在您的路径中。跑步时会发生什么which sudo
13年

新的终端机还不够。最终由于其他原因重启,现在可以正常工作了。可能注销/登录。
deed02392 2014年

我知道a是附加的,但我认为将附加作为默认行为会更有用。创建别名很容易,因此可以将其groupadd group追加。我今天不带-a命令执行一次,因为我不记得该-a参数了。
erm3nda

尽管这是一个Ubuntu论坛,但对于CentOS,我不得不做sudo usermod -aG sudo <username>。因为没有找到我的简便方法。
akki

43

您可以为其使用用户管理GUI(在同一位置创建用户),也可以sudo adduser <username> sudo在命令行中使用。


2
RootSudo的ubuntu文档中也提到了这一点,尽管它们引用的是admin组而不是sudo组
icc97 2012年

8
+1:这是将用户添加到群组中最容易记住,最简单和直观的方式!
Andrea Corbellini 2012年

这给了我一个错误的说法Usage: adduser [options] LOGIN\n adduser -D\n adduser -D [options]\n
AKKI

23

您也可以使用图形界面。单击面板右上方的齿轮,然后选择“系统设置”,然后选择“用户帐户”

您需要单击解锁小按钮才能在此窗口中编辑内容。然后点击该人的帐户,然后为“帐户类型”选择适当的下拉菜单

在此处输入图片说明


我有Ubuntu 10.10,但是我的图形界面已被锁定。它打开,但是当我按下按钮时什么也没发生。我想是与特权有关的东西(实际上我很傻)。我该如何解决这个问题?
linello

您是否点击了“解锁”按钮?
daboross

漂亮的动画!我想做这样的gif动画来显示我的Web应用程序的新功能吗?我在Lubuntu 16.04 ...上
Stephane



2

我参加聚会很晚,但是这个答案可能会对在Docker容器中使用Ubuntu的人有所帮助。

我最近创建了一个基于Ubuntu 16.04.1。的Docker容器。

默认情况下,Docker Ubuntu映像是Ubuntu的精简版,它没有包括在内的绝大多数常用工具sudo

此外,默认情况下,用户以root用户身份登录到Docker容器。

因此,我使用docker run命令启动了容器,并安装了'sudo'软件包:

root@default:/# apt-get install sudo

运行命令adduser myuser sudo报告错误adduser: The user 'myuser' does not exist.。阅读此答案后,我首先运行命令来创建用户:

root@default:/# adduser myuser

然后运行以下命令:

root@default:/# adduser myuser sudo
Adding user `myuser' to group `sudo' ...
Adding user myuser to group sudo
Done.

用户myuser已成功添加到sudo组。


1

使用usermod。使用以下命令添加sudo权限:

usermod -aG sudo <your username>

请注意,您必须使用root帐户或使用具有sudo权限的另一个帐户。如果由于某种原因无法访问另一个帐户,并且您不知道root密码,则需要Ubuntu(或另一个Linux发行版)活动CD,然后需要将chroot插入Ubuntu文件系统,然后从chroot内部运行以上命令。


1

这是我使用以下基本映像设置非root用户的方法ubuntu:18.04

RUN \
    groupadd -g 999 foo && useradd -u 999 -g foo -G sudo -m -s /bin/bash foo && \
    sed -i /etc/sudoers -re 's/^%sudo.*/%sudo ALL=(ALL:ALL) NOPASSWD: ALL/g' && \
    sed -i /etc/sudoers -re 's/^root.*/root ALL=(ALL:ALL) NOPASSWD: ALL/g' && \
    sed -i /etc/sudoers -re 's/^#includedir.*/## **Removed the include directive** ##"/g' && \
    echo "foo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \
    echo "Customized the sudoers file for passwordless access to the foo user!" && \
    echo "foo user:";  su - foo -c id

上面的代码会发生什么:

  • 用户和组foo已创建。
  • 用户foo被添加到foosudo组中。
  • uidgid被设置为值999
  • 主目录设置为/home/foo
  • 外壳设置为/bin/bash
  • sed命令对/etc/sudoers文件进行内联更新以允许fooroot用户无密码访问该sudo组。
  • sed命令禁用#includedir指令,该指令将允许子目录中的任何文件覆盖这些内联更新。
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.