介绍
Linux 用户管理是系统管理员的一项基本技能。它涉及创建、修改和维护用户账户,以确保系统的正确访问和安全性。在这个实验中,你将学习如何在 Linux 环境中管理用户,重点是添加用户并配置他们的权限。这些技能对于维护任何 Linux 系统的安全性和完整性至关重要。
创建新用户
Linux 中的用户账户允许个人以特定权限访问系统。每个用户都有唯一的用户名、用户 ID (UID)、主目录和默认 shell。
在这一步中,你将在系统上创建一个名为 "cipher" 的新用户。
在你的 LabEx 虚拟机环境中打开终端。终端应该已经位于默认位置
/home/labex/project。使用带有适当选项的
useradd命令来创建新用户:
sudo useradd -m -s /bin/bash cipher
让我们来理解一下这个命令:
sudo:该命令以超级用户权限运行,这是进行用户管理所必需的。useradd:这是用于创建新用户的命令。-m:此选项为新用户在/home/cipher处创建一个主目录。-s /bin/bash:这将用户的默认 shell 设置为 bash。cipher:这是我们要创建的新用户的用户名。
- 通过列出主目录来验证用户是否已创建:
ls -l /home
你应该会看到类似于以下的输出:
total 8
drwxr-xr-x 2 cipher cipher 4096 Oct 15 10:30 cipher
drwxr-xr-x 5 labex labex 4096 Oct 15 10:00 labex
cipher 的条目确认用户及其主目录已成功创建。
为新用户设置密码
每个用户账户都应该有一个安全的密码,以防止未经授权的访问。在这一步中,你将为上一步创建的“cipher”用户设置密码。
- 使用
passwd命令为用户设置密码:
sudo passwd cipher
- 系统会提示你输入新密码两次。输入你选择的密码,每次输入后按回车键。请注意,出于安全原因,你输入的密码不会显示在屏幕上。
New password:
Retype new password:
如果两次输入的密码匹配,你将看到一条确认消息:
passwd: password updated successfully
- 通过检查影子文件(shadow file)中的密码字段是否不再为空来验证密码是否已设置:
sudo grep cipher /etc/shadow | cut -d: -f2 | grep -v '!'
如果返回一串字符,则表示密码已成功设置。输出不会显示实际密码,而是其加密形式。
让我们详细了解一下验证命令:
grep cipher /etc/shadow查找包含我们用户的行cut -d: -f2提取密码字段(第二个字段)grep -v '!'只显示不包含 '!' 的行
最后一部分 (grep -v '!') 特别重要,因为在 Linux 中:
- 没有密码或已锁定的账户,其密码字段中会有 '!'
- 有有效密码的账户,其密码字段会是一个不包含 '!' 的加密哈希值
因此,如果该命令返回输出,则确认已设置了有效密码,且不会暴露实际的密码哈希值。
查看用户信息
创建用户后,了解如何查看该用户的信息非常重要。Linux 为此提供了多个命令。
- 首先,使用
id命令查看 "cipher" 用户的基本信息:
id cipher
这将显示用户 ID (uid)、组 ID (gid) 以及用户所属的组。输出应类似于:
uid=1001(cipher) gid=1001(cipher) groups=1001(cipher)
- 现在,查看
/etc/passwd文件中该用户的条目,该文件包含基本的用户信息:
grep cipher /etc/passwd
输出将是一行由冒号分隔的字段。例如:
cipher:x:1001:1001::/home/cipher:/bin/bash
这些字段代表:
- 用户名:cipher
- 密码:x(实际密码存储在 /etc/shadow 中)
- 用户 ID:1001
- 组 ID:1001
- GECOS 字段:(本例中为空,通常包含用户的全名)
- 主目录:/home/cipher
- 登录 shell:/bin/bash
- 你还可以使用
finger命令以更易读的格式查看用户信息。首先,安装 finger 软件包:
sudo apt-get update
sudo apt-get install -y finger
- 现在使用 finger 查看 cipher 用户的信息:
finger cipher
输出将以更人性化的格式显示信息,包括登录状态和主目录:
Login: cipher Name:
Directory: /home/cipher Shell: /bin/bash
Never logged in.
No mail.
No Plan.
将用户添加到组
Linux 使用组来组织用户,并控制他们对文件和资源的访问权限。在这一步中,你将学习如何将用户添加到现有组中。
- 首先,创建一个名为 "crypto" 的新组,后续会将用户添加到该组:
sudo groupadd crypto
- 现在,使用
usermod命令将 "cipher" 用户添加到 "crypto" 组:
sudo usermod -aG crypto cipher
在这个命令中:
sudo:以超级用户权限运行命令usermod:用于修改用户账户的命令-aG:将用户添加到组的选项(-a 表示追加,-G 表示补充组)crypto:组名cipher:用户名
- 通过查看用户所属的组,验证该用户是否已被添加到组中:
groups cipher
输出应同时包含 "cipher" 和 "crypto" 组:
cipher : cipher crypto
- 你还可以查看
/etc/group文件中该组的条目:
grep crypto /etc/group
输出应显示该组及其成员:
crypto:x:1002:cipher
为用户授予 sudo 权限
在执行管理任务时,用户通常需要提升权限。sudo(超级用户执行)命令允许普通用户以管理员权限执行命令。在这一步中,你将学习如何授予用户 sudo 访问权限。
- 在 Ubuntu 系统中,拥有 sudo 访问权限的用户通常会被添加到 "sudo" 组。将 "cipher" 用户添加到 sudo 组:
sudo usermod -aG sudo cipher
- 验证该用户是否已被添加到 sudo 组:
groups cipher
现在输出中应该包含 "sudo" 组:
cipher : cipher crypto sudo
- 让我们通过切换到 "cipher" 用户并尝试使用 sudo 运行命令来测试 sudo 访问权限。首先,切换到 cipher 用户:
sudo su - cipher
- 现在尝试运行一个需要 sudo 权限的命令:
sudo ls /root
系统会提示你输入为 cipher 用户设置的密码。正确输入密码后,命令应该会成功执行,显示 /root 目录的内容。
退出 cipher 用户会话,返回 labex 用户:
exit
总结
在本次实验中,你学习了 Linux 用户管理的基本概念。你已成功创建了一个新用户、设置了密码、查看了用户信息、将用户添加到组中,并授予了 sudo 访问权限。这些技能对于系统管理员维护 Linux 系统的安全性和控制资源访问至关重要。
用户管理是系统管理的一个关键方面,你在这里学到的命令和概念为更高级的用户和权限管理任务奠定了基础。掌握这些基础知识后,你就踏上了精通 Linux 系统管理的道路。



