当前位置: 首页>>技术教程>>正文


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

, , ,

问题描述

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

另外,我可以将新添加的用户设置为sudo吗?还是只有在添加后才能更改该用户?我怎么能通过shell来做到这一点?

最后,我可以删除在初始安装Ubuntu时创建的原始用户,还是该用户以某种方式’special’?

最佳解决办法

只需将用户添加到sudo组:

sudo adduser <username> sudo

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

这是可行的,因为/etc/sudoers是pre-configured授予此组所有成员的权限(您不必对此进行任何更改):

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

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


实际上,你的新用户也应该是其他组的成员。如果您在用户设置中将用户的账户类型设置为管理员,它将至少放置在所有这些组中:

adm sudo lpadmin sambashare

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

次佳解决办法

我做到了

sudo usermod -a -G sudo <username>

如建议如何将sudo权限授予现有用户?

第三种解决办法

打开sudoers文件:sudo visudo将在$EDITOR中定义的编辑器中打开/etc/sudoers文件(可能是GNU nano – 如果变量不是您想要的,则设置该变量,例如export EDITOR="nano"并再次尝试sudo visudo)。

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

username ALL=(ALL) ALL   # Change the user name before you issue the commands

然后用Ctrl + O执行WriteOut。编辑器会要求您输入文件名。缺省值是visudo在保存到实际sudoers文件之前用于检查语法错误的临时文件。按Enter接受它。使用Ctrl + X退出nano编辑器。

完成!

第四种办法

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

一旦你已经完成了adduser "username",你仍然可以回来做一个adduser "username" sudo,然后它将正确地将该用户添加到该组中。

它实际上不会像sudo adduser username sudo那样第一次工作。它会给你一个错误。总之,您必须首先制作用户帐户,然后才能将其添加到群组中。

第五种办法

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

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

sudoer manual会给你更多的信息。您可以指定特定用户/组允许执行哪些命令作为root用户。

第六种办法

在CentOS上,我以root身份执行操作

echo ' username ALL=(ALL)   ALL' >> /etc/sudoers

第七种办法

以下片段授予对用户名的根访问权限,而不以root身份显式登录。

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

sudo adduser username sudo
sudo sh -c "echo 'username ALL=NOPASSWD: ALL' >> /etc/sudoers"

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11.html,未经允许,请勿转载。