如何在 Ubuntu 上添加和删除用户

已发表: 2023-05-22
MALIBAL Aon S1 上打开的 Linux 终端。
汉娜史崔克 / How-To Geek
要在 Ubuntu 中创建一个名为“maxn”的新用户,请使用命令“sudo adduser maxn”。 要删除用户及其主目录,您需要“deluser --remove-home maxn”命令。 您还可以将他们添加到组 (usermod)、重置他们的密码 (passwd) 或授予他们 sudo 权限 (visudo)。

系统管理员角色包括创建用户、删除用户和查看现有用户。 他们还控制谁可以和不能使用root的提升权限。 以下是在 Ubuntu Linux 上执行此操作的方法。

目录

关于在 Ubuntu 中管理用户的知识
如何在 Ubuntu 中创建用户
使用用户添加
使用添加用户
如何在 Ubuntu 中添加用户组
如何在 Ubuntu 中列出用户
如何在 Ubuntu 上将用户添加到 sudo
如何在 Ubuntu 上更改用户密码
如何在 Ubuntu 上删除用户
从摇篮到坟墓

关于在 Ubuntu 中管理用户的知识

多用户系统要求每个使用计算机的人都有一个不同的用户帐户。 每个用户都有自己的密码,以及自己的私人数据区域。 普通用户无法访问其他用户的数据。 当然, root用户可以访问任何内容。

管理用户帐户的是根用户。 他们必须在新用户需要使用计算机时创建一个帐户,并在不再需要时删除旧帐户。

除了创建和删除之外,在帐户的生命周期内可能还需要进行其他更改。 用户可能会忘记他们的密码,并需要它来重置密码。 他们可能加入另一个部门或团队,需要添加到适当的用户组。 他们甚至可能会被提升并获得 root 特权。

这些常见任务落在系统管理团队身上。 如果您是值班管理员——或者团队中唯一的管理员——您应该快速轻松地完成这些任务。

以下是如何在 Ubuntu 上执行这些常见任务的总结。 因为它们使用标准工具,所以您也可以在其他发行版上使用它们,但我们将在屏幕截图中以 Ubuntu 为特色。

如何在 Ubuntu 中创建用户

有两种创建新用户的内置命令行方法。 它们的名称非常相似,一个是useradd ,另一个是adduser

useradd命令需要在命令行上提供创建新帐户所需的所有信息。 adduser命令采用不同的方法。 它会提示您输入创建新帐户所需的信息。

使用用户添加

要使用useradd添加新用户,请使用此格式的命令。

 sudo useradd -s /bin/bash -m -c "Mary Quinn" -Gdevelopment maryq 

在 Ubuntu 中使用 useradd 命令添加新的用户帐户

我们使用的选项和参数是:

  • -s /bin/bash :这会为这个新用户设置默认的 shell。
  • -m :这会在“/home/”目录中为新用户创建一个主目录。
  • -c “Mary Quinn” :新用户的全名。 这是可选的,但很有用。
  • -Gdevelopment :新用户被添加到一个与其帐户名同名的组中。 -G选项允许我们将它们添加到另一个预先存在的组中。 这些组必须已经存在。 这个新用户将成为“开发”组的成员。
  • maryq :新用户的登录名。 这必须是唯一的。

这创建了用户,但我们仍然需要设置他们的密码。 我们通过将帐户登录名传递给passwd命令来完成此操作。

 sudo 密码 maryq 

在 Ubuntu 中使用 passwd 命令设置用户密码

系统会提示您输入新密码,您必须输入两次。

使用添加用户

要使用adduser命令添加新用户,我们提供要创建的帐户的登录名。

 sudo 添加用户 maxn 

在 Ubuntu 中使用 adduser 命令添加新用户

系统会提示您输入密码和新用户的全名。

如果需要,当系统提示您输入可选的“全名”、“房间号”、“工作电话”、“家庭电话”和“其他”字段时,您可以按“Enter”。 这些将留空。

如何在 Ubuntu 中添加用户组

通常,在 Linux 中将用户添加到组时,实际上是将他们添加到另一个组。 该组必须已经存在。

我们使用usermod命令执行此操作。 重要的是确保将-a (追加)选项与-G (补充组)选项一起使用。 如果不这样做,用户将成为新组的成员,但他们的其他组成员身份将被删除。

这会导致很多问题,因为他们将不是他们自己的主要组的成员,并且他们将无法访问自己的文件——即使他们能够登录。

要将maxn添加到开发组,我们使用-a (追加)和-G (补充组)选项以及我们要将它们添加到的组的名称。 我们将在之前和之后使用groups命令,以便我们可以看到所做的更改。

 组最大值
sudo usermod -a -G development maxn
 组最大值

在 Ubuntu 中使用 usermod 命令将用户添加到组

正如我们所见,用户maxn已被添加到“开发”组,并且他仍然是其他组的成员。

如何在 Ubuntu 中列出用户

跟踪用户帐户也是管理员职责的一部分。 值得庆幸的是,查看现有用户帐户列表不是问题,并且有多种方法可以做到这一点。

我们可以使用 less 查看“/etc/passwd”文件,但它显示了所有系统和进程“用户”帐户以及实际有机人员使用的帐户。

 少 /etc/passwd 

在 Ubuntu 上使用 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 

在 Ubuntu 上搜索 login.defs 文件以获取用户 ID 上限和下限

在此计算机上,用户帐户 ID 的范围是从 1000 到 60000。

有了这些知识,我们可以使用getent命令在密码数据库中搜索值在 1000 到 60000 范围内的条目。

 获取密码 {1000..60000} 

在 Ubuntu 上使用 getent 搜索用户 ID 在 1000 到 60000 之间的用户帐户

这要有用得多,但是因为它要检查 59,000 个用户 ID,所以它确实需要一段时间才能运行。 我们可以通过找出使用次数最多的用户 ID 并搜索到该值来减少该时间。

我们将使用cut命令并使用冒号“ : ”作为字段分隔符。 我们将从“/etc/passwd”文件中提取第三个字段,即用户 ID 字段。 我们将通过sort传输输出,并使用-g (一般数字排序)选项以数字升序显示结果。

 剪切 -d: -f3 /etc/passwd | 排序-g 

在 Ubuntu 上发现使用次数最多的用户 ID

1000 到 60000 之间的任何值都是有效的人类帐户。 这台计算机上满足这些标准的最高值 1003。将该值放入我们的getent命令中可以显着加快速度。

 获取密码 {1000..1003} 

在 Ubuntu 上搜索 login.defs 文件以获取较低的用户 ID 限制和最高使用的用户 ID

如何在 Ubuntu 上将用户添加到 sudo

那些能够使用sudo命令的少数用户都是特定组的成员。 要将sudo权限授予某人,您必须将他们添加到该组。 在 Ubuntu 和许多其他发行版上,该组的名称是“sudo”,但也可能是其他名称,例如“wheel”,因此最好检查一下。

sudo visudo命令打开一个编辑器并加载“/etc/sudoers”文件。 向下滚动,直到看到类似于“允许组成员 sudo 执行任何命令”的条目,然后记下组名。

 须藤维苏多

在 sudoers 文件中查找 sudo 组的名称,在 Ubuntu 上使用 sudo visudo

在我们的例子中,它是“sudo”。

我们将使用我们之前使用的usermod命令将用户maryq添加到该组。

 团体玛丽克
sudo usermod -a -G sudo maryq
 团体玛丽克

将用户 maryq 添加到 sudo 组,在 Ubuntu 上使用 usermod

下次 Mary 登录时,她将能够使用sudo命令。

如果用户对sudo有特定的需求而仅此而已,那么让他们无限制地访问sudo就太过分了。 假设 Max 需要能够使用apt命令安装软件,但不需要完全的sudo访问权限。

我们需要将他添加到“/etc/sudoers”文件中,并指定他可以用sudo运行的命令。

 须藤维苏多

在 Ubuntu 上使用 sudo visudo 将用户帐户 maxn 添加到 eh sudoers 文件

滚动文件并将这些行插入文件中最后一个条目的正上方。

 # 用户 Max 可以使用 apt 安装软件
maxn ALL=(root) /usr/bin/apt

第一行是注释。 第二行以 Max 的默认用户组名称开头。 这通常与用户的登录名匹配。 “ALL=”表示这适用于该网络上的所有主机。 “(root)”表示“maxn”组的成员可以对命名命令承担 root 权限,唯一的命名命令是“ apt ”。

请注意,在“maxn”之后有一个制表符,而不是一系列空格。

保存您的更改。 当 Max 下次登录时,他将能够使用sudo运行apt命令。 他将无法将sudo与任何其他命令一起使用。

如何在 Ubuntu 上更改用户密码

更改用户密码很容易。 您需要将sudo与 passwd 命令结合使用。

 须藤密码最大

在 Ubuntu 上使用 passwd 命令为用户设置新密码

系统会要求您输入密码两次以确保输入正确。 下次用户登录时,他们将需要使用新密码。

如果您不想选择用户的密码,请使用 -e(过期)选项。 这会强制用户在下次登录时选择自己的新密码。

 sudo passwd -e maxn

如何在 Ubuntu 上删除用户

Ubuntu 和其他 Debian 派生的发行版有deluser命令来从你的系统中删除一个用户。 不基于 Debian 的发行版改为使用userdel命令。

在你使用核选项之前,你真的要删除它们吗? 你可以把他们锁在外面。 这使您可以自由查看他们的文件等。

如果您决定删除它们但可能想引用它们的文件和数据,请使用诸如tar之类的工具存档它们的主目录。

让我们以 Max 的用户帐户maxn为例。

要锁定他,我们可以使用带有-l (锁定)选项的passwd命令。

 sudo passwd -l maxn 

在 Ubuntu 上使用 passwd 命令将用户锁定在他们的帐户之外

要存档他的主目录,我们将使用tar

 sudo tar cfjv max-normal-home-folder.tar.bz /home/maxn 

在 Ubuntu 上使用 tar 命令归档用户的主目录

请注意,在tar的命令行选项之前没有连字符“-”。 我们用了:

  • c : 创建一个存档文件。
  • f :新存档文件的文件名。
  • j : 使用 bzip2 压缩。
  • v :在创建存档时提供详细输出。

存档文件是为我们创建的,具有我们要求的名称。

 ls 

用户的主文件夹在 Ubuntu 上存档为 tar 文件

要删除用户,我们将使用--remove-home选项同时清除他们的数据。

 sudo deluser --remove-home maxn 

在 Ubuntu 上使用带有 --remove-home 选项的 deluser 命令删除用户

马克斯是历史。

在非 Debian 发行版上,命令是:

 sudo userdel --remove maxn

从摇篮到坟墓

作为系统管理员,您对普通用户拥有完全的控制权。 从创建它们、管理它们到最终删除它们,命令行都可以让您完成这一切。