/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组?

评论

还有其他人试图在ubuntu 17上使sudo在没有密码的情况下工作吗?

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

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

#1 楼

sudo usermod -aG sudo <username>


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

另请参见:


如何使用命令行将新用户添加为sudoer?


评论


我按照您的建议做了,但是终端告诉我bash:sudo:找不到命令,为什么?

– Teifi
13年1月21日在12:23

@Teifi,这意味着您可能未安装sudo,或者由于某些奇怪的原因,它不在您的路径中。当您运行哪个sudo时会发生什么?

–n0pe
13年1月22日在16:33

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

–deed02392
2014年7月8日15:35



我知道一个用于附加,但是我认为将附加作为默认行为会更有用。创建别名很容易,因此这是拥有groupadd组然后追加它的方法。我今天不带-a命令执行一次,因为我不记得-a参数了。

– m3nda
17年4月12日在18:59

尽管这是一个Ubuntu论坛,但对于CentOS,我必须执行sudo usermod -aG sudo <用户名>。因为没有找到我的简单方法。

– akki
19年5月25日在14:03

#2 楼

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

评论


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

–icc97
2012年5月5日在8:27

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

– Andrea Corbellini
2012-12-28 17:14

这给了我一个错误,说用法:adduser [选项]登录\ n adduser -D \ n adduser -D [选项] \ n

– akki
19年5月25日在13:58



#3 楼

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

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



评论


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

– Linello
13年1月18日在9:49

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

– daboross
2013年6月10日下午2:22

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

– Stephane
17年9月21日在14:41

#4 楼

如果将Unity用作桌面环境,这真的很简单。

如果已经创建了用户,则可以将其从Standard更改为Administrator,否则请确保在创建新用户时选择了Administrator一个。

在尝试更改它之前,请不要忘记解锁



评论


看起来很酷的GIF动画! +1您是如何做到的?将问题移到这里。

– hhh
2012-12-30在0:58



askubuntu.com/a/123515/25863

–布鲁诺·佩雷拉(Bruno Pereira)
2012年12月30日下午4:58

#5 楼

sudo gpasswd -a $USER sudo

#6 楼

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

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

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

此外,默认情况下,用户已登录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组。

#7 楼

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

usermod -aG sudo <your username>


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

#8 楼

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

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
shell设置为/bin/bash
sed命令对/etc/sudoers文件进行内联更新,以允许fooroot用户无密码访问sudo组。
sed命令禁用#includedir指令将允许子目录中的任何文件覆盖这些内联更新。