简介
在 Linux 系统上添加和删除用户是最重要的系统管理任务之一,需要熟悉这些操作。在创建新系统时,通常只能默认访问 root 帐户。
虽然以 root 用户身份运行可以完全控制系统和用户,但也存在危险和可能的破坏性。对于常见的系统管理任务,最好的做法是添加一个非特权用户,并在没有 root 权限的情况下执行这些任务。您还可以为系统上的其他用户创建额外的非特权帐户。系统上的每个用户都应该有自己单独的帐户。
对于需要管理员权限的任务,在 Ubuntu 系统上安装了一个名为 sudo
的工具。简而言之,sudo
允许您以另一个用户的身份运行命令,包括具有管理员权限的用户。在本指南中,您将学习如何创建用户帐户、分配 sudo
权限和删除用户。
先决条件
要完成本教程,您需要访问运行 Ubuntu 18.04 的服务器。确保您具有对服务器的 root 访问权限并启用了防火墙。要设置这一点,请按照我们的 Ubuntu 18.04 初始服务器设置指南进行操作。
添加用户
如果您以 root 用户身份登录,可以随时通过运行以下命令创建新用户:
adduser newuser
如果您以获得 sudo
权限的非 root 用户身份登录,可以使用以下命令添加新用户:
sudo adduser newuser
无论哪种方式,您都需要回答一系列问题:
- 为新用户分配并确认密码。
- 输入有关新用户的任何其他信息。这是可选的,如果您不希望使用这些字段,可以按
ENTER
键跳过。 - 最后,您将被要求确认您提供的信息是否正确。按
Y
继续。
您的新用户现在已准备就绪,并可以使用您输入的密码登录。
如果您需要让新用户具有管理员权限,请继续下一节。
授予用户 sudo 权限
如果您的新用户应该能够以 root(管理员)权限执行命令,则需要让新用户访问 sudo
。让我们来看看完成此任务的两种方法:首先是将用户添加到预定义的 sudo 用户组 中,其次是在 sudo
的配置中按用户指定权限。
将新用户添加到 Sudo 组
在 Ubuntu 18.04 系统上,默认情况下,sudo
配置为向 sudo 组中的任何用户授予完全权限。
您可以使用 groups
命令查看您的新用户属于哪些组:
groups newuser
newuser : newuser
默认情况下,新用户只属于自己的组,因为 adduser
会创建此组以及用户配置文件。用户和其自己的组共享相同的名称。为了将用户添加到新组,您可以使用 usermod
命令:
usermod -aG sudo newuser
-aG
选项告诉 usermod
将用户添加到列出的组中。
请注意,usermod
命令本身需要 sudo
权限。这意味着只有以 root 用户身份登录或已添加为 sudo
组成员的其他用户才能将用户添加到 sudo
组。在后一种情况下,您将不得不在此命令之前加上 sudo
,就像这个例子中一样:
sudo usermod -aG sudo newuser
在 /etc/sudoers
中指定显式用户权限
作为将用户放入 sudo 组的替代方法,您可以使用 visudo
命令,在系统的默认编辑器中打开名为 /etc/sudoers
的配置文件,并明确指定每个用户的权限。
使用 visudo
是对 /etc/sudoers
进行更改的唯一推荐方法,因为它锁定文件,防止多个同时编辑,并在覆盖文件之前对其内容进行验证检查。这有助于防止因为失去 sudo
权限而无法解决问题的情况。
如果您当前以 root 用户身份登录,请运行以下命令:
visudo
如果您以获得 sudo
权限的非 root 用户身份登录,请使用 sudo
前缀运行相同的命令:
sudo visudo
传统上,visudo
会在 vi
编辑器中打开 /etc/sudoers
,这对于经验不足的用户来说可能会令人困惑。在新的 Ubuntu 安装中,默认情况下,visudo
将使用 nano
文本编辑器,提供更方便和易于访问的文本编辑体验。使用箭头键移动光标,并搜索类似以下内容的行:
root ALL=(ALL:ALL) ALL
在此行下面添加以下突出显示的行。确保将 newuser
更改为您要授予 sudo
权限的用户配置文件的名称:
root ALL=(ALL:ALL) ALL newuser ALL=(ALL:ALL) ALL
为每个应被授予完整 sudo
权限的用户添加类似的新行。完成后,按 CTRL + X
,然后按 Y
,最后按 ENTER
保存并关闭文件。
测试用户的 Sudo 权限
现在你的新用户可以以管理员权限执行命令了。
当以新用户身份登录时,你可以像平常一样输入命令以普通用户的身份执行:
some_command
你可以在命令前加上 sudo
以管理员权限执行相同的命令:
sudo some_command
这样做时,系统会提示你输入以普通用户账户登录时的密码。
删除用户
如果你不再需要某个用户,最好的做法是删除该用户的账户。
你可以以 root 身份运行以下命令来删除用户本身,而不删除其文件:
deluser newuser
如果你以另一个具有 sudo
权限的非 root 用户登录,你应该使用以下命令:
sudo deluser newuser
如果你想在删除用户时同时删除用户的主目录,你可以以 root 身份运行以下命令:
deluser --remove-home newuser
如果你以具有 sudo
权限的非 root 用户身份运行,你应该使用带有 sudo
前缀的相同命令:
sudo deluser --remove-home newuser
如果你之前为删除的用户配置了 sudo
权限,你可能需要再次删除相关行:
visudo
或者,如果你是具有 sudo
权限的非 root 用户,你可以使用以下命令:
sudo visudo
root ALL=(ALL:ALL) ALL newuser ALL=(ALL:ALL) ALL # 删除此行
这将防止以相同名称创建的新用户意外获得 sudo
权限。
结论
现在你应该对如何在 Ubuntu 18.04 系统中添加和删除用户有了相当好的掌握。有效的用户管理将允许你分隔用户,并仅赋予他们完成工作所需的访问权限。
要了解有关如何配置 sudo
的更多信息,请查看我们的有关如何编辑 sudoers 文件的指南。