如何在 Ubuntu 上添加和删除用户
Ubuntu 上用户管理的 A-Z。
要点
要在 Ubuntu 中创建名为“maxn”的新用户,请使用命令“sudo adduser maxn”。要删除用户及其主目录,您需要使用“deluser --remove-home maxn”命令。您还可以将它们添加到组 (usermod)、重置其密码 (passwd) 或授予它们 sudo 权限 (visudo)。
系统管理员角色包括创建用户、删除用户和查看现有用户。他们还控制谁可以或不可以使用root
的提升权力。以下是如何在 Ubuntu Linux 上执行此操作。
关于在 Ubuntu 中管理用户的知识
多用户系统要求每个使用计算机的人都有一个不同的用户帐户。每个用户都有自己的密码和自己的私有数据区域。普通用户无法访问其他用户的数据。当然,root
用户可以访问任何内容。
管理用户帐户的是 root 用户。当新用户需要使用计算机时,他们必须创建一个帐户,并在不再需要旧帐户时删除它们。
除了创建和删除之外,在帐户的生命周期内可能还需要进行其他更改。用户可能忘记了密码,需要重置密码。他们可能会加入另一个部门或团队,并且需要添加到适当的用户组。他们甚至可能会得到晋升并被授予 root 权限。
这些常见任务由系统管理团队承担。如果您是值班管理员,或者团队中唯一的管理员,您应该快速轻松地完成这些任务。
以下是如何在 Ubuntu 上执行这些常见任务的总结。因为它们使用标准工具,所以您也可以在其他发行版上使用它们,但我们将在屏幕截图中展示 Ubuntu。
如何在 Ubuntu 中创建用户
有两种创建新用户的内置命令行方法。它们的名称非常相似,一个是 useradd
,另一个是 adduser
。
useradd
命令需要在命令行上提供创建新帐户所需的所有信息。 adduser
命令采用不同的方法。它会提示您输入创建新帐户所需的信息。
使用用户添加
要使用 useradd
添加新用户,请使用此格式的命令。
sudo useradd -s /bin/bash -m -c "Mary Quinn" -Gdevelopment maryq
我们使用的选项和参数是:
- -s /bin/bash:这为新用户设置默认 shell。
- -m:这会在“/home/”目录中为新用户创建一个主目录。
- -c "Mary Quinn":新用户的全名。这是可选的,但很有用。
- -Gdevelopment:新用户被添加到与其帐户名同名的组中。
-G
选项还允许我们将它们添加到另一个预先存在的组中。这些组必须已经存在。这个新用户将是“开发”组的成员。 - maryq:新用户的登录名。这一定是独一无二的。
这会创建用户,但我们仍然需要设置他们的密码。我们通过将帐户登录名传递给 passwd
命令来完成此操作。
sudo passwd maryq
系统会提示您输入新密码,您必须输入两次。
使用添加用户
要使用 adduser
命令添加新用户,我们需要提供要创建的帐户的登录名。
sudo adduser maxn
系统会提示您输入密码和新用户的全名。
如果需要,当系统提示您输入可选的“全名”、“房间号”、“工作电话”、“家庭电话”和“其他”字段时,您可以按“Enter”键。这些将留空。
如何在 Ubuntu 中添加用户组
通常,当您将用户添加到 Linux 中的组时,实际上是将他们添加到另一个组。该组必须已经存在。
我们使用 usermod
命令来完成此操作。重要的是确保将 -a
(追加)选项与 -G
(补充组)选项一起使用。如果不这样做,用户将成为新组的成员,但他们的其他组成员身份将被删除。
这会导致很多问题,因为他们不会成为自己主要组的成员,并且无法访问自己的文件——即使他们能够登录。
要将 maxn
添加到开发组,我们使用 -a
(追加)和 -G
(补充组)选项,名称为我们将其添加到的组。我们将在前后使用groups
命令,以便我们可以看到进行了哪些更改。
groups maxn
sudo usermod -a -G development maxn
groups maxn
正如我们所看到的,用户 maxn
已被添加到“development”组中,并且他仍然是其他组的成员。
如何在 Ubuntu 中列出用户
跟踪用户帐户也是管理员角色的一部分。值得庆幸的是,查看现有用户帐户列表不是问题,并且有多种方法可以做到这一点。
我们可以使用 less 来查看“/etc/passwd”文件的内部,但它显示了所有系统和进程“用户”帐户以及实际的有机人员使用的帐户。
less /etc/passwd
所有用户帐户都有一个唯一的数字 ID。可用作 ID 的最低和最高值存储在“/etc/login.defs”文件中。如果我们发现这些值,我们可以列出值在这两个限制之间的帐户。这将列出我们的真实用户帐户。
为了找出上限和下限,我们将使用 grep
搜索“/etc/login.defs”文件。我们正在搜索以“UID_MIN”或“UID_MAX”开头的行。
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs
在此计算机上,用户帐户 ID 的范围为 1000 到 60000。
有了这些知识,我们就可以使用 getent
命令在密码数据库中搜索值在 1000 到 60000 范围内的条目。
getent passwd {1000..60000}
这更加有用,但是,因为它要检查 59,000 个用户 ID,所以运行起来确实需要一段时间。我们可以通过找出使用次数最多的用户 ID 并搜索到该值来减少该时间。
我们将使用 cut
命令并使用冒号“:
”作为字段分隔符。我们将从“/etc/passwd”文件中提取第三个字段,即用户 ID 字段。我们将通过 sort
传输输出,并使用 -g
(通用数字排序)选项以升序数字顺序显示结果。
cut -d: -f3 /etc/passwd | sort -g
1000 到 60000 之间的任何数字都是有效的人类帐户。这台计算机上满足这些条件的最高值是 1003。将该值插入到我们的 getent
命令中可以显着加快速度。
getent passwd {1000..1003}
如何在 Ubuntu 上添加用户到 sudo
能够使用 sudo 命令的少数用户都是特定组的成员。要向某人授予 sudo
权限,您必须将他们添加到该组。在 Ubuntu 和许多其他发行版上,该组的名称是“sudo”,但它可能是其他名称,例如“wheel”,因此最好检查一下。
sudo visudo
命令打开编辑器并加载“/etc/sudoers”文件。向下滚动,直到看到类似于“允许 sudo 组成员执行任何命令”的条目,然后记下组名称。
sudo visudo
在我们的例子中,它是“sudo”。
我们将使用之前使用的 usermod
命令将用户 maryq
添加到该组。
groups maryq
sudo usermod -a -G sudo maryq
groups maryq
Mary 下次登录时,她将能够使用 sudo
命令。
如果用户对 sudo
有特定需求,但没有更多需求,那么给予他们对 sudo
的无限制访问权限就显得有些过分了。假设 Max 需要能够使用 apt 命令安装软件,但不需要完全的 sudo 访问权限。
我们需要将他添加到“/etc/sudoers”文件中,并指定他可以使用 sudo 运行的命令。
sudo visudo
滚动浏览文件并将这些行插入到文件中最后一个条目的上方。
# User Max can install software using aptmaxn ALL=(root) /usr/bin/apt
第一行是注释。第二行以Max默认用户组的名称开始。这通常与用户的登录名匹配。 “ALL=”表示这适用于该网络上的所有主机。 “(root)”表示“maxn”组的成员可以承担指定命令的 root 权限,唯一的指定命令是“apt
”。
请注意,“maxn”后面紧接着有一个制表符,而不是一系列空格。
保存您的更改。当 Max 下次登录时,他将能够使用 sudo
运行 apt
命令。他将无法将 sudo 与任何其他命令一起使用。
如何在 Ubuntu 上更改用户密码
更改用户密码很容易。您需要将 sudo 与 passwd 命令一起使用。
sudo passwd maxn
系统会要求您输入密码两次以确保输入正确。用户下次登录时,将需要使用新密码。
如果您不想选择用户的密码,请使用 -e(过期)选项。这会强制用户在下次登录时选择自己的新密码。
sudo passwd -e maxn
如何在 Ubuntu 上删除用户
Ubuntu 和其他 Debian 派生发行版具有 deluser
命令来从系统中删除用户。不基于 Debian 的发行版则使用 userdel
命令。
在使用核选项之前,您真的要删除它们吗?你可以把他们锁在外面。这样您就可以自由地查看他们的文件等等。
如果您决定删除它们,但可能想引用它们的文件和数据,请使用 tar
等工具存档它们的主目录。
我们以 Max 的用户帐户 maxn
为例。
要锁定他,我们可以使用带有 -l
(锁定)选项的 passwd
命令。
sudo passwd -l maxn
为了存档他的主目录,我们将使用 tar
。
sudo tar cfjv max-normal-home-folder.tar.bz /home/maxn
请注意,tar
的命令行选项之前没有连字符“-”。我们用了:
- c:创建存档文件。
- f:新存档文件的文件名。
- j:使用 bzip2 压缩。
- v:创建存档时提供详细输出。
存档文件是为我们创建的,并带有我们请求的名称。
ls
为了删除用户,我们将使用 --remove-home
选项同时清除他们的数据。
sudo deluser --remove-home maxn
麦克斯已成为历史。
在非 Debian 发行版上,命令是:
sudo userdel --remove maxn
从摇篮到坟墓
作为系统管理员,您对普通用户拥有完全的权力。从创建它们、管理它们到最终删除它们,命令行可以让您完成这一切。