介绍
您应该知道如何在新的 Linux 服务器上执行的最基本任务之一是添加和删除用户。 当您创建一个新系统时,您通常(例如在 DigitalOcean Droplets 上)默认情况下只有 root 帐户。
虽然以 root 用户身份运行为您提供了很多功能和灵活性,但它也很危险并且可能具有破坏性。 添加一个额外的非特权用户来执行常见任务几乎总是一个更好的主意。 您还应该为您系统上可能拥有的任何其他用户创建额外的帐户。 每个用户应该有一个不同的帐户。
当您需要管理员权限时,您仍然可以通过称为 sudo
的机制获得管理员权限。 在本指南中,我们将介绍如何创建用户帐户、分配 sudo
权限以及删除用户。
如何添加用户
如果您以 root 用户身份登录,您可以随时通过键入以下内容创建新用户:
adduser newuser
如果您以非 root 用户身份登录并被授予 sudo
权限,如初始服务器设置指南 中的 所示,您可以通过键入以下内容添加新用户:
sudo adduser newuser
无论哪种方式,您都会被问到一系列问题。 该程序将是:
- 为新用户分配并确认密码
- 输入有关新用户的任何其他信息。 这完全是可选的,如果您不想使用这些字段,可以通过点击 Enter 跳过。
- 最后,系统会要求您确认您提供的信息是否正确。 输入 Y 继续。
您的新用户现在可以使用了! 您现在可以使用您设置的密码登录。
注意:如果您需要新用户访问管理功能,请继续。
如何授予用户 Sudo 权限
如果您的新用户应该能够以 root(管理员)权限执行命令,则您需要授予新用户对 sudo
的访问权限。 让我们来看看解决这个问题的两种方法:将用户添加到预定义的 sudo
用户组 ,并在 sudo
的配置中为每个用户指定权限.
将新用户添加到 Sudo 组
默认情况下,Ubuntu 16.04 系统上的 sudo
配置为将完全权限扩展到 sudo 组中的任何用户。
您可以使用 groups
命令查看新用户所在的组:
groups newuser
Outputnewuser : newuser
默认情况下,新用户仅在他们自己的组中,该组在创建帐户时创建,并与用户共享名称。 为了将用户添加到新组,我们可以使用 usermod
命令:
usermod -aG sudo newuser
这里的 -aG
选项告诉 usermod
将用户添加到列出的组中。
测试用户的 Sudo 权限
现在,您的新用户能够以管理权限执行命令。
以新用户身份登录后,您可以通过正常输入命令以普通用户身份执行命令:
some_command
您可以通过在命令前键入 sudo
以管理权限执行相同的命令:
sudo some_command
系统将提示您输入您登录时使用的常规用户帐户的密码。
在 /etc/sudoers 中指定显式用户权限
作为将您的用户放入 sudo 组的替代方法,您可以使用 visudo
命令,该命令在系统的默认编辑器中打开一个名为 /etc/sudoers
的配置文件,并显式为每个用户指定权限。
使用 visudo
是对 /etc/sudoers
进行更改的唯一推荐方法,因为它会锁定文件以防止多个同时编辑,并在覆盖文件之前对其内容执行完整性检查。 这有助于防止出现您错误配置 sudo
并因失去 sudo
权限而无法解决问题的情况。
如果您当前以 root 身份登录,请键入:
visudo
如果您使用具有 sudo
权限的非 root 用户登录,请键入:
sudo visudo
传统上,visudo
在 vi
编辑器中打开 /etc/sudoers
,这对于没有经验的用户可能会感到困惑。 默认情况下,在新的 Ubuntu 安装中,它应该使用 nano
,它提供了更熟悉的文本编辑体验。 使用箭头键移动光标,然后搜索如下所示的行:
/etc/sudoers
root ALL=(ALL:ALL) ALL
在此行下方,复制您在此处看到的格式,仅更改单词“root”以引用您希望授予 sudo 权限的新用户:
/etc/sudoers
root ALL=(ALL:ALL) ALL newuser ALL=(ALL:ALL) ALL
您应该为每个应该被赋予完全 sudo 权限的用户添加这样的新行。 完成后,您可以按 Ctrl-X,然后按 Y,然后按 Enter 来保存并关闭文件。
如何删除用户
如果您不再需要用户,最好删除旧帐户。
您可以通过以 root 身份输入以下内容来删除用户本身,而不删除他们的任何文件:
deluser newuser
如果您以另一个具有 sudo 权限的非 root 用户身份登录,则可以键入:
sudo deluser newuser
相反,如果您想在删除用户时删除用户的主目录,则可以以 root 身份发出以下命令:
deluser --remove-home newuser
如果您以具有 sudo 权限的非 root 用户身份运行它,则可以键入:
sudo deluser --remove-home newuser
如果您之前为您删除的用户配置了 sudo 权限,您可能希望通过键入以下内容再次删除相关行:
visudo
或者,如果您是具有 sudo 权限的非 root 用户,请使用它:
sudo visudo
root ALL=(ALL:ALL) ALL newuser ALL=(ALL:ALL) ALL # DELETE THIS LINE
这将防止以相同名称创建的新用户被意外授予 sudo 权限。
结论
您现在应该对如何在 Ubuntu 16.04 系统中添加和删除用户有了相当好的了解。 有效的用户管理将允许您分离用户并仅授予他们完成工作所需的访问权限。
有关如何配置 sudo
的更多信息,请在此处查看我们关于 如何编辑 sudoers 文件 的指南。