简介
在新的 Linux 服务器上,你应该知道如何添加和删除用户是最基本的任务之一。当你创建一个新系统时,通常只会默认给你 root 账户。虽然以 root 用户身份运行可以赋予你很大的权力和灵活性,但也是危险的,可能会造成破坏。通常更好的做法是添加一个额外的非特权用户来执行常见任务。然后你可以为系统上的其他用户创建额外的账户。
你仍然可以通过一个叫做 sudo
的机制在需要时获取管理员权限。在本教程中,你将学习如何创建用户账户,分配 sudo
权限以及删除用户。
如何添加用户
如果你以 root 用户登录,你可以随时输入以下命令来创建一个新用户:
adduser sammy
如果你以被赋予 sudo
权限的非 root 用户登录,就像在初始服务器设置指南中演示的那样,你可以输入以下命令来添加一个新用户:
sudo adduser sammy
一旦你执行了该命令,你会看到一些输出,然后会出现一系列提示,要求你为新用户分配并确认密码。然后你将被要求输入有关新用户的任何其他信息。这是完全可选的,如果你不想输入这些字段的信息,可以通过按 ENTER
键跳过。
最后,你将被要求确认你提供的信息是否正确。输入 Y
继续。整个过程看起来像这样:
Adding user `sammy' ... Adding new group `sammy' (1001) ... Adding new user `sammy' (1001) with group `sammy' ... Creating home directory `/home/sammy' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for sammy Enter the new value, or press ENTER for the default Full Name []: Sammy the Shark Room Number []: 123 Work Phone []: 555-555-5555 Home Phone []: Other []: Is the information correct? [Y/n] y
adduser
命令为你的用户创建了一个用户、一个组和一个家目录。你的新用户现在已经准备好使用了!你现在可以使用你设置的密码登录。
如何授予用户 sudo 权限
如果你的新用户需要以管理员权限执行命令,你需要给新用户访问 sudo
的权限。让我们来看看解决这个问题的两种方法:将用户添加到预定义的 sudo
用户组 中,并在 sudo
的配置中为每个用户指定权限。
将新用户添加到 Sudo 组
在 Debian 8 系统上,默认情况下,sudo
被配置为向 sudo 组中的任何用户授予完整权限。
你可以使用 groups
命令查看你的新用户属于哪些组:
groups sammy
sammy : sammy
默认情况下,新用户只属于他们自己的组,该组是在创建账户时创建的,并且与用户共享名称。为了将用户添加到一个新组中,使用 usermod
命令:
usermod -aG sudo sammy
这里的 -aG
选项告诉 usermod
将用户添加到列出的组中。
再次使用 groups
命令验证你的用户现在是 sudo
组的成员:
sammy : sammy sudo
现在,你的新用户可以以管理员权限执行命令。
当以新用户身份登录时,你可以像平常一样输入命令以作为你的常规用户执行:
ls ~
你可以在命令前输入 sudo
以以管理员权限执行命令:
sudo ls /root
在命令前加上 sudo
时,你将被提示输入密码。输入发出命令的用户账户的密码,而不是 root 用户的密码。
在 /etc/sudoers 中指定显式用户权限
作为将用户放入 sudo 组的替代方法,你可以使用 visudo
命令,在系统默认编辑器中打开一个名为 /etc/sudoers
的配置文件,并明确指定每个用户的权限。
使用 visudo
是对 /etc/sudoers
进行更改的唯一推荐方式,因为它锁定文件以防止多个同时编辑,并在覆盖文件之前对其内容进行检查。这有助于防止因为你失去 sudo
权限而无法解决问题的情况。
如果你当前以 root 用户登录,输入:
visudo
如果你以具有 sudo
权限的非 root 用户登录,输入:
sudo visudo
传统上,visudo
会在 vi
编辑器中打开 /etc/sudoers
,这对于没有经验的用户来说可能会令人困惑。在新的 Debian 安装中,默认情况下应该使用 nano
,它提供了更熟悉的文本编辑体验。使用箭头键移动光标,并搜索看起来像这样的行:
root ALL=(ALL:ALL) ALL
在这行下面,复制你在这里看到的格式,只更改单词 “root” 以引用你想要授予 sudo 权限的新用户:
root ALL=(ALL:ALL) ALL sammy ALL=(ALL:ALL) ALL
你应该为每个应该被授予完整 sudo 权限的用户添加一行。完成后,你可以通过按 CTRL-X
,然后 Y
,最后 ENTER
来保存并关闭文件。
如何删除用户
如果你不再需要某个用户,最好的做法是删除旧账户。
你可以在 root 用户下直接删除用户本身,而不删除任何文件,输入以下命令:
deluser sammy
如果你以另一个具有 sudo 权限的非 root 用户登录,你可以输入以下命令:
sudo deluser sammy
如果你想在删除用户时同时删除用户的家目录,可以在 root 用户下输入以下命令:
deluser --remove-home sammy
如果你以具有 sudo 权限的非 root 用户身份运行,你应该输入以下命令:
sudo deluser --remove-home sammy
如果你之前通过编辑 /etc/sudoers
文件为要删除的用户配置了 sudo 权限,你应该通过以下命令删除文件中相关的行:
visudo
或者如果你是具有 sudo 权限的非 root 用户,你可以输入以下命令:
sudo visudo
然后找到文件中与你的用户相关的行并将其删除。
root ALL=(ALL:ALL) ALL sammy ALL=(ALL:ALL) ALL # 删除这一行
这将防止以相同名称创建的新用户意外获得 sudo 权限。
结论
现在你应该已经掌握了如何在 Debian 8 系统中添加和删除用户的方法。有效的用户管理将允许你分离用户并仅给予他们完成工作所需的访问权限。
要了解更多关于如何配置 sudo
的信息,请查看我们的有关如何编辑 sudoers 文件的指南。