在我使用adduser
添加用户后,我无法通过系统>管理>用户和组看到它,除非我退出然后再次登录。这是正常的吗?
另外,我可以将新添加的用户设置为Sudo
er,还是只有在添加后才需要更改?我怎么能通过shell做到这一点?
最后,我可以删除在初始安装Ubuntu时创建的原始用户,还是该用户以某种方式'特殊'?
只是 将用户添加到Sudo
组 :
Sudo adduser <username> Sudo
更改将在用户下次登录时生效。
这是有效的,因为/etc/sudoers
已预先配置为向该组的所有成员授予权限(您不必对此进行任何更改):
# Allow members of group Sudo to execute any command
%Sudo ALL=(ALL:ALL) ALL
只要您可以访问与“原始”用户位于同一组中的用户,就可以删除旧用户。
实际上,您的新用户也应该是其他组。如果在“用户设置”中将用户的“帐户类型”设置为“管理员”,则它将至少放在所有这些组中:
adm Sudo lpadmin sambashare
由于您的系统配置可能会有所不同,我建议您查看groups <username>
的输出,以查看正常使用的组。
打开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
然后执行WriteOut Ctrl + O。编辑器会询问您要写入的文件名。默认值是visudo
用于在保存到实际的sudoers
文件之前检查语法错误的临时文件。按 Enter 接受它。退出nano编辑器 Ctrl + X。
完成!
我必须补充一点,我确信很多人都不明白:
一旦你完成了adduser "username"
,你仍然可以回来做adduser "username" Sudo
,然后它会正确地将该用户添加到组中。
它实际上不会像Sudo adduser username Sudo
那样第一次工作。它会给你一个错误。总而言之,您必须首先创建用户帐户,然后才能将其添加到组中。
默认情况下,组admin
中的所有成员都在Ubuntu中允许使用Sudo,因此最简单的方法是将用户帐户添加到admin
组。
如果您不想为用户帐户提供完全root访问权限,则需要使用visudo编辑/ etc/sudoer文件(它确保文件中没有任何语法错误并完全失去Sudo功能)您指定此用户(或新组)可以作为root执行的命令。
sudoer手册 将为您提供更多相关信息。您可以指定特定用户/组允许以root身份执行的命令。
在CentOS上,我是根本做的
echo ' username ALL=(ALL) ALL' >> /etc/sudoers
以下代码段授予对用户名的root访问权限,而无需以root身份显式登录。
确保首先将用户添加到Sudo组。在Ubuntu 16.04.1 LTS上测试。
Sudo adduser username Sudo
sudo sh -c "echo 'username ALL=NOPASSWD: ALL' >> /etc/sudoers"