简介
在新的 Linux 服务器上,你应该知道如何添加和删除用户是最基本的任务之一。当你创建一个新系统时,通常(比如在 DigitalOcean Droplets 上)默认只会给你 root 账户。
虽然以 root 用户身份运行可以赋予你很大的权力和灵活性,但也是危险的,可能会造成破坏。通常最好的做法是添加一个额外的非特权用户来执行常见任务。你还应该为系统上的其他用户创建额外的账户。每个用户应该有一个不同的账户。
当你需要时,你仍然可以通过一种叫做 sudo
的机制获得管理员权限。在本指南中,我们将介绍如何创建用户账户、分配 sudo
权限和删除用户。
如何添加用户
如果你以 root 用户身份登录,你可以随时输入以下命令来创建一个新用户:
adduser newuser
如果你以被赋予 sudo
权限的非 root 用户身份登录,就像在初始服务器设置指南中演示的那样,你可以输入以下命令来添加一个新用户:
sudo adduser newuser
无论哪种方式,你都会被要求回答一系列问题。具体步骤如下:
- 为新用户分配并确认密码
- 输入有关新用户的任何其他信息。这完全是可选的,如果你不想使用这些字段,可以直接按 Enter 跳过。
- 最后,你将被要求确认你提供的信息是否正确。输入 Y 继续。
你的新用户现在已经准备就绪!你现在可以使用你设置的密码登录。
如何授予用户 sudo 权限
如果你的新用户应该有执行具有根(管理员)权限的命令的能力,你需要给新用户访问 sudo
的权限。让我们来看看解决这个问题的两种方法:将用户添加到预定义的 sudo
用户组 中,并在 sudo
的配置中为每个用户指定权限。
将新用户添加到 Sudo 组
在 Ubuntu 16.04 系统上,默认情况下,sudo
被配置为向 sudo 组中的任何用户授予完整权限。
你可以使用 groups
命令查看你的新用户属于哪些组:
groups newuser
newuser : 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
,它提供了更熟悉的文本编辑体验。使用箭头键移动光标,并搜索看起来像这样的行:
root ALL=(ALL:ALL) ALL
在这一行下面,复制你在这里看到的格式,只更改单词 “root” 以引用你想要授予 sudo 权限的新用户:
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 # 删除此行
这将防止以相同名称创建的新用户意外获得 sudo 权限。
结论
现在你应该对如何在 Ubuntu 16.04 系统中添加和删除用户有了相当好的掌握。有效的用户管理将允许你分离用户,并仅为他们的工作提供必要的访问权限。
要了解有关如何配置 sudo
的更多信息,请查看我们的有关如何编辑 sudoers 文件的指南。