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

Dav*_*d B 898 command-line sudo user-management

使用 添加用户后adduser,我无法通过系统 > 管理 > 用户和组看到它除非我注销然后重新登录。这是正常的吗?

另外,我可以将新添加的用户设置为sudoer 还是必须在添加后才能更改?我怎样才能通过外壳做到这一点?

最后,我可以删除在 Ubuntu 初始安装时创建的原始用户,还是这个用户在某种程度上“特殊”?

ænd*_*rük 1112

只需将用户添加到sudo

sudo adduser <username> sudo
Run Code Online (Sandbox Code Playgroud)

更改将在用户下次登录时生效。

这是有效的,因为/etc/sudoers它预先配置为向该组的所有成员授予权限(您不必对此进行任何更改):

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
Run Code Online (Sandbox Code Playgroud)

只要您有权访问与“原始”用户在同一组中的用户,就可以删除旧用户。


实际上,您的新用户还应该加入其他组。如果您在“用户设置”中将用户的帐户类型设置为管理员,则它至少会被置于以下所有组中:

adm sudo lpadmin sambashare
Run Code Online (Sandbox Code Playgroud)

由于您的系统配置可能会有所不同,我建议您查看 的输出groups <username>以查看通常使用的组。

  • 问题是关于现有用户,但如果是新用户 *"sudo adduser &lt;username&gt; sudo"* 必须以 *"sudo adduser &lt;username&gt;"* 开头。否则会收到错误消息“用户 &lt;用户名&gt; 不存在”。 (20认同)
  • 必须再次登录才能正常工作。 (11认同)
  • 这对我不起作用。仍然无法使用 sudo。 (10认同)
  • 请注意,12.04 LTS 中不存在 `admin` 组。 (7认同)

Les*_*zek 223

我做了

sudo usermod -a -G sudo <username>
Run Code Online (Sandbox Code Playgroud)

正如这里推荐的那样。

  • 组 sudo 不存在 (30认同)
  • 对于现有用户,这是正确的解决方案。它应该被标记为答案。 (5认同)
  • 不要忘记 `-a` 标志,否则你将从除 `sudo` 之外的所有组中删除用户 (3认同)

Mit*_*ran 86

打开 sudoers 文件:sudo visudo/etc/sudoers在定义的编辑器中打开文件$EDITOR(可能是GNU nano - 如果它不是你想要的,请设置变量,例如export EDITOR="nano",再试sudo visudo一次)。

将以下行添加到文件末尾。

username ALL=(ALL) ALL   # Change the user name before you issue the commands
Run Code Online (Sandbox Code Playgroud)

然后用Ctrl+执行 WriteOut O。编辑器将询问您要写入的文件名。默认将是一个临时文件,用于visudo在保存到实际sudoers文件之前检查语法错误。按Enter接受它。使用Ctrl+退出 nano 编辑器X

完毕!

  • 将单个用户显式添加到 sudoers 文件而不是简单地将该用户添加到适当的组 `sudo` 是不可取的。 (11认同)
  • 使用 sudo visudo 你可以输出到 /etc/sudoers.tmp,当离开编辑器时它会自己覆盖 /etc/sudoers (3认同)
  • 其他解决方案适用于具有内置 `sudo` 组的操作系统,但对于没有专用 `sudo` 组的偶尔系统,此解决方案有效。我唯一的建议是您可能希望避免将 `sudo` 本身放入程序中,因为它可能尚未设置!通过执行`su -`然后简单地执行`visudio`即可轻松解决。这适用于 Gentoo。 (2认同)
  • 我还应该添加 `&lt;username&gt; ALL=(ALL) NOPASSWD: ALL` 吗? (2认同)

小智 32

我必须补充一点,我相信很多人不明白:

完成 a 后adduser "username",您仍然可以返回并执行 a adduser "username" sudo,然后它将将该用户正确添加到组中。

它实际上不会像sudo adduser username sudo. 它会给你一个错误。总而言之,这意味着您必须先创建用户帐户,然后才能将其添加到组中。


jow*_*ian 14

在 CentOS 上,我以 root 身份执行

echo ' username ALL=(ALL)   ALL' >> /etc/sudoers
Run Code Online (Sandbox Code Playgroud)


San*_*eep 13

以下代码段授予 root 访问用户名的权限,而无需以 root 身份显式登录。

确保先将用户添加到 sudo 组。在 Ubuntu 16.04.1 LTS 上测试。

sudo adduser username sudo
sudo sh -c "echo 'username ALL=NOPASSWD: ALL' >> /etc/sudoers"
Run Code Online (Sandbox Code Playgroud)

  • 为什么不在一行中:```useradd -m username --groups sudo``` (3认同)

txw*_*ger 12

该组的所有成员admin,在 Ubuntu 中默认允许使用 sudo,所以最简单的方法是将用户帐户添加到admin组中。

如果您不想给用户帐户完全的 root 访问权限,则需要使用 visudo 编辑 /etc/sudoer 文件(它确保文件中没有任何语法错误并完全失去 sudo 功能)您指定此用户(或新组)可以作为 root 执行哪些命令。

sudoer手册会给你更多这方面的信息。您可以指定特定用户/组允许以 root 身份执行的命令。