介绍
本实验将引导你掌握 Linux 系统中基础的用户账户管理操作。你将学习如何创建、修改和删除用户账户,以及如何设置和更改密码。这些都是 Linux 系统管理的核心技能。如果你是 Linux 新手也不必担心 —— 我们会循序渐进地解释每一个步骤!
创建新用户
让我们从创建一个名为「joker」的新用户账户开始。
- 打开终端。在 Linux 中,终端是一个你可以输入命令的文本界面。
- 输入以下命令并按回车键:
sudo useradd joker
让我们来解析一下这个命令:
sudo是一个赋予你临时超级用户(管理员)权限的命令。我们使用它是因为创建新用户需要这些高级权限。useradd是用于创建新用户的命令。joker是我们要创建的用户名。
注意:如果你尝试在不使用 sudo 的情况下运行此命令,会收到「权限被拒绝」的错误。这是因为普通用户不允许创建新用户账户 —— 这是专属于系统管理员的任务。
这凸显了超级用户与普通用户之间的区别。作为普通用户,你无法创建新账户,但通过使用 sudo,你可以临时提升权限来执行这项管理任务。
- 为了验证用户是否已成功创建,我们将检查
/etc/passwd文件:
sudo grep -w 'joker' /etc/passwd
/etc/passwd 文件就像是用户账户的电话簿。每一行代表一个用户账户,不同的信息片段由冒号(:)分隔。
你应该会看到类似以下的输出:
joker:x:5001:5001::/home/joker:/bin/sh
这一行显示了:
- 用户名:joker
- 密码:x(实际密码安全地存储在其他地方)
- 用户 ID:5001
- 组 ID:5001
- 家目录:
/home/joker,但目前尚未创建 - 默认 Shell:
/bin/sh
创建带有家目录的用户
现在,让我们创建另一个名为「bob」的用户,并为其分配一个家目录。
- 运行以下命令:
sudo useradd -m bob
-m 选项告诉系统为该用户创建一个家目录。家目录就像是一个个人文件夹,用户可以在其中存储自己的文件和设置。
- 让我们验证家目录是否已创建:
sudo ls -ld /home/bob
你应该会看到类似以下的输出:
drwxr-x--- 2 bob bob 57 Jan 19 13:33 /home/bob
该输出显示:
- 开头的
d表示这是一个目录 rwxr-x---显示了谁可以对该目录进行读取、写入或执行- 两个
bob条目表示该目录的用户所有者和组所有者都是 bob 57是目录的大小(以字节为单位)Jan 19 13:33是目录创建的时间/home/bob是目录的位置
设置用户密码
现在我们需要为新用户设置密码。让我们为「joker」设置密码。
- 运行以下命令:
sudo passwd joker
- 系统会要求你输入两次新密码。在本实验中,请使用一个简单的密码,例如
password123。
重要提示:输入密码时,屏幕上不会显示任何字符。这是 Linux 的一项安全特性,旨在防止他人窥视你的密码。如果你不小心输错了,可以重新尝试。 重要提示:请记住这个密码!你在本实验后续步骤中会用到它。
- 如果操作成功,你会看到「passwd: password updated successfully」的消息。
注意:在现实场景中,请务必使用强且唯一的密码!
在后台,Linux 将加密后的密码存储在一个名为 /etc/shadow 的安全文件中。这比存储在任何人都能读取的 /etc/passwd 文件中要安全得多。
修改用户属性
Linux 允许我们在用户账户创建后更改其各项设置。以更改 joker 的家目录为例。
- 运行以下命令:
sudo usermod -d /home/wayne joker
以下是该命令的作用:
usermod是修改用户账户设置的命令-d /home/wayne指定了新的家目录路径joker是我们要修改的用户
- 让我们验证更改:
sudo grep -w 'joker' /etc/passwd
-w 用于精确匹配整个单词,grep 用于在文件中搜索该单词。你应该能在输出中看到 joker 的家目录已经更新。
更改用户 Shell
我们可以修改的另一个重要设置是用户的默认 Shell。Shell 是解释并运行你在终端中输入的命令的程序。
默认情况下,用户「joker」使用的是 /bin/sh。虽然 sh(Bourne Shell)是大多数类 Unix 系统中都存在的标准 Shell,但 bash(Bourne Again Shell)提供了更多功能,且通常对用户更友好。
将 joker 的 Shell 更改为 bash 有以下好处:
- 更直观的命令行界面
- 增强的脚本编写能力
- 为用户环境提供更好的自定义选项
以下是更改方法:
- 将 joker 的默认 Shell 更改为 bash:
sudo usermod -s /bin/bash joker
- 验证更改:
sudo grep -w 'joker' /etc/passwd
你应该会在 joker 条目的末尾看到 /bin/bash。这意味着 bash 现在是 joker 的默认 Shell。
完成此更改后,joker 每次登录或打开新终端会话时,都能使用功能更丰富的 bash 环境。
将用户添加到用户组
在 Linux 中,我们使用用户组来组织用户并管理权限。一个重要的组是 sudo 组,它赋予用户管理权限。让我们以将 joker 添加到 sudo 组为例。
为什么要将用户添加到 sudo 组?
- 系统管理:sudo 组中的用户可以执行系统级的管理任务。
- 软件安装:sudo 组成员可以安装和更新软件包。
- 配置修改:他们可以修改系统配置文件。
- 用户管理:他们可以创建、修改或删除其他用户账户。
你可能会问:「既然我们总是可以使用 sudo 命令,为什么还要把人加入 sudo 组?」原因如下:
- 便利性:sudo 组的用户可以使用 sudo 而无需知道 root 密码。他们使用自己的密码即可。
- 细粒度控制:系统管理员可以配置 sudo,允许特定用户仅以超级用户权限运行某些命令。
- 可追溯性:与共享 root 密码不同,sudo 会记录谁运行了什么命令,从而提高了安全性和可追溯性。
- 安全性:拥有具备 sudo 权限的具名账户通常比在多个管理员之间共享 root 密码更安全。
在现实场景中,通常在以下情况下将用户添加到 sudo 组:
- 他们是需要执行定期维护任务的系统管理员或 IT 人员。
- 他们是需要安装特定软件或为工作进行系统更改的开发人员。
- 他们是需要为某些任务提升权限的高级用户,但你不想给他们 root 密码。
请记住,将用户添加到 sudo 组会赋予他们对系统的巨大权力,因此应谨慎操作,仅在必要时进行。
现在,让我们将 joker 添加到 sudo 组:
- 运行此命令:
sudo usermod -aG sudo joker
以下是该命令的作用:
usermod是修改用户账户的命令-aG意为「追加到组」(将用户添加到新组而不从原有组中移除)sudo是我们要加入的目标组joker是我们要修改的用户
- 验证更改:
groups joker
你应该能在 joker 的所属组列表中看到 sudo。
- 为了查看此更改的效果,我们需要切换到 joker 用户并尝试执行一个需要 sudo 权限的命令:
su - joker
此命令将从你当前的用户(labex)切换到 joker 用户。系统会提示你输入 joker 的密码。请记住,这是你之前设置的密码(password123)。输入密码时,屏幕上不会显示任何字符。
- 以 joker 身份登录后,让我们尝试查看一个通常需要 root 权限的文件:
sudo cat /etc/shadow
系统提示时再次输入 joker 的密码。你应该能够看到 /etc/shadow 文件的内容,该文件通常只有 root 才能访问。这证实了 joker 现在拥有了 sudo 权限。
- 完成后,输入
exit返回到你原始的用户账户(labex)。
注意:在生产环境中,你应该非常谨慎地决定将谁添加到 sudo 组。权力越大,责任越大!
锁定与解锁用户账户
有时,你可能需要临时禁用某个用户账户而不删除它。
- 锁定 joker 账户:
sudo passwd -l joker
-l 选项用于锁定密码。
- 尝试切换到 joker 用户:
su - joker
系统会要求输入密码。输入你之前为 joker 设置的密码(如果你按照建议操作,则是 password123)。
你应该会看到「身份验证失败」的消息。这意味着账户已成功锁定。
- 现在,让我们解锁该账户:
sudo passwd -u joker
-u 选项用于解锁密码。
- 再次尝试切换到 joker 用户:
su - joker
提示时输入密码。这一次,你应该能够成功切换到 joker 用户。
在继续下一步之前,请输入 exit 返回到你原始的用户账户。
删除用户
最后,让我们学习如何删除用户。我们将删除之前创建的「bob」用户。
- 删除 bob 及其家目录:
sudo userdel -r bob
userdel 命令用于删除用户账户。-r 选项会同时移除该用户的家目录和邮件池。
- 验证用户是否已被删除:
sudo grep -w 'bob' /etc/passwd
sudo ls -ld /home/bob
这两个命令都不应该返回任何结果。这意味着用户及其家目录已被成功移除。
总结
恭喜你!你已经完成了 Linux 用户账户管理实验。你学习了如何:
- 创建新用户账户
- 设置用户密码
- 修改用户属性(如家目录和默认 Shell)
- 将用户添加到用户组
- 锁定与解锁用户账户
- 删除用户账户
你还接触了重要的 Linux 概念,如 /etc/passwd 文件、家目录、Shell 和用户组。这些是 Linux 系统管理的基础技能。请记住,在现实场景中,管理用户账户时务必遵循所在组织的安全性策略。



