问题描述
使用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"
参考资料