22·用户与权限进阶

用户管理基础

usersuseradd

第 22 课 - 用户管理基础

1. 学习目标

完成本课学习后,你将能够:

  • 理解 Linux 中用户账户的核心概念和相关配置文件。
  • 掌握 使用 useradd 命令创建新用户,并为其设置密码。
  • 学会 查看、修改和删除用户账户。

2. 核心概念

在 Linux 系统中,一切皆文件,用户也不例外。一个用户账户本质上是一组配置信息,决定了“谁”可以登录系统以及“如何”与系统交互。我们可以把用户管理想象成给公司的每个员工办理门禁卡。

  • 用户名 (Username):用户的登录名称,如 zhangsan
  • 用户 ID (UID):系统内部标识用户的唯一数字。普通用户通常从 1000 开始。
  • 组 ID (GID):用户所属的“主组”的数字标识。我们会在下一课详解。
  • 家目录 (Home Directory):用户的个人工作区,如 /home/zhangsan。用户登录后默认会进入此目录。
  • 登录 Shell:用户登录后执行的命令解释器,通常是 /bin/bash。它像一个翻译官,把用户的命令翻译给内核执行。

这些信息都记录在系统的关键文件 /etc/passwd 中。你可以用 cat /etc/passwd 查看。它的每一行代表一个用户,格式如下: 用户名:密码占位符:UID:GID:注释:家目录:登录Shell 例如:zhangsan:x:1001:1001:张三:/home/zhangsan:/bin/bash

3. 代码示例

# 1. 创建一个新用户
# 最简单的创建用户命令,系统会使用默认值(如自动创建家目录,分配UID等)
sudo useradd lisi

# 为新用户 `lisi` 设置密码。系统会提示你输入并确认密码。
sudo passwd lisi
# 输出类似:
# Changing password for user lisi.
# New password: 
# BAD PASSWORD: The password is shorter than 8 characters
# Retype new password: 
# passwd: all authentication tokens updated successfully.

# 2. 使用更详细的选项创建用户
# -g 指定主组 (此处为 `users` 组,需要先存在)
# -s 指定登录shell
# -m 确保创建家目录 (默认行为)
# -c 添加注释信息
sudo useradd -g users -s /bin/bash -m -c "技术部经理" wangwu
sudo passwd wangwu

# 3. 查看用户信息
# 使用 id 命令查看用户的 UID、GID 及其所属的所有组
id lisi
# 输出类似:
# uid=1001(lisi) gid=1001(lisi) groups=1001(lisi)

# 使用 grep 查看 /etc/passwd 中特定用户的信息
grep ‘wangwu‘ /etc/passwd

# 4. 查看用户登录历史(用于验证用户创建和登录是否成功)
# last 命令显示系统用户最近的登录列表
last

# 5. 删除用户
# 使用 -r 选项可以同时删除用户的家目录和邮件池
sudo userdel -r lisi

4. 实践练习

练习一:基础创建 创建一个名为 developer 的用户,并为其设置一个安全的密码。完成后,使用 id developer 命令确认用户已创建。

  • 预期输出id 命令能成功显示 developer 用户的 UID 和 GID 信息。

练习二:完整创建 创建一个用户 webadmin,要求如下:

  1. 登录 Shell 设置为 /bin/sh
  2. 添加注释信息 “Web服务器管理员”。
  3. 确保为其创建了家目录 /home/webadmin。 创建完成后,检查 /etc/passwd 和家目录是否存在。
  • 预期输出/etc/passwd 中对应行包含 /bin/sh 和注释,并且 ls -ld /home/webadmin 显示该目录存在。

练习三:清理与确认 假设你误操作创建了一个用户 testuser,现在需要安全地将其删除,包括其个人文件。请执行删除操作,并验证 /etc/passwd 文件和 /home/ 目录下已无该用户相关条目。

  • 预期输出:使用 grep testuser /etc/passwd 无输出,且 /home/testuser 目录不存在。

5. 常见错误

  • 忘记使用 sudo:创建、修改、删除用户都需要 root 权限。不加 sudo 会报 “Permission denied”。
  • 创建后未设置密码:使用 useradd 创建的用户是锁定状态,无法登录。必须立即使用 passwd 为其设置密码。
  • UID 冲突:使用 -u 选项手动指定 UID 时,如果该 UID 已被其他用户占用,会导致创建失败。通常让系统自动分配即可。
  • 忘记 -r 选项删除家目录:使用 userdel 用户名 只删除账户信息,而 /home/username 目录会残留。养成使用 userdel -r 用户名 的习惯。

6. 小结

本课我们学习了 Linux 用户管理的基础:

  1. 用户是配置:用户信息存储在 /etc/passwd 等文件中,包含 UID、家目录、Shell 等关键属性。
  2. 创建与设置:核心命令是 useraddpasswduseradd 用于创建用户,passwd 用于设置或修改密码。
  3. 查看与删除:使用 idgrep 等命令查看用户信息,使用 userdel 命令删除用户。
  4. 权限是前提:所有用户管理操作都需要 root 权限(sudo)。

记住,一个功能完整的用户 = 正确的账户信息(useradd) + 有效的密码(passwd)。在下一课中,我们将深入学习用户组,这是权限管理的另一块重要基石。

练习编辑器

rust
Loading...

继续学习

完成本课后,建议继续学习下一课「用户组管理」 以巩固所学知识。