Linux 用户和用户组管理
《Linux 用户和用户组管理》
👤 学习目标
- 掌握 Linux 系统中用户与用户组的基本概念及管理命令。
- 理解
/etc/passwd、/etc/shadow、/etc/group等核心配置文件的作用。 - 能够在阿里云 Ubuntu ECS 上创建、修改、删除用户与用户组,并设置权限。
- 学会使用
sudo提权机制,提升系统安全性与灵活性。
🧠 核心重点(表格提炼)
| 操作 | 命令 | 功能说明 |
|---|---|---|
| 创建用户 | useradd |
添加新用户 |
| 设置密码 | passwd |
设置或更改用户密码 |
| 删除用户 | userdel |
删除用户账户 |
| 修改用户属性 | usermod |
修改用户信息(如主目录、登录 shell 等) |
| 创建用户组 | groupadd |
添加新用户组 |
| 删除用户组 | groupdel |
删除用户组 |
| 查看用户信息 | id, groups |
显示用户 ID 和所属组 |
| 切换用户身份 | su |
切换到其他用户 |
| 提权执行命令 | sudo |
以管理员身份执行命令 |
🔍 详细讲解
1. 用户管理基础概念 🧱
Linux 是一个多用户操作系统,每个用户都有自己的用户名、密码、主目录和权限范围。
✅ 用户类型:
- root 用户:系统管理员,拥有最高权限。
- 普通用户:受限于权限,只能操作自己的主目录和特定资源。
- 系统用户:用于运行服务(如
www-data、mysql),通常不登录系统。
📌 重要文件:
/etc/passwd:存储用户基本信息(用户名、UID、主目录等)/etc/shadow:加密存储用户密码/etc/group:记录用户组信息
📄 查看当前用户信息:
whoami
id
2. 创建用户:useradd 👤
使用
useradd可以添加一个新用户。
📄 示例:
sudo useradd john
✅ 创建用户并自动创建主目录:
sudo useradd -m john
✅ 创建用户并指定主目录路径:
sudo useradd -m -d /home/john_dev john
✅ 创建用户并指定默认 shell:
sudo useradd -s /bin/bash john
📌 注意:
- 新用户创建后,默认没有密码,无法登录系统。
- 需要手动设置密码。
3. 设置用户密码:passwd 🔒
使用
passwd为用户设置或修改密码。
📄 示例:
sudo passwd john
输入两次密码即可完成设置。
📌 提示:
- 密码应尽量复杂,避免被暴力破解。
- 可通过
/etc/login.defs设置密码策略(如最小长度、过期时间等)。
4. 删除用户:userdel 🗑️
使用
userdel删除用户账户。
📄 示例:
sudo userdel john
✅ 同时删除用户的主目录和邮件:
sudo userdel -r john
📌 注意:
- 删除用户前请确认其是否在运行关键进程。
- 不建议直接删除 root 用户,除非你非常清楚自己在做什么。
5. 修改用户属性:usermod ⚙️
usermod可用于修改已有用户的属性。
✅ 更改用户登录名:
sudo usermod -l johndev john
✅ 更改用户主目录:
sudo usermod -d /home/newdir johndev
✅ 更改用户所属主组:
sudo usermod -g developers johndev
✅ 将用户加入多个附加组:
sudo usermod -aG sudo,www-data johndev
📌 注意:
-aG表示“追加”到指定组,不会清除原有组。- 如果忘记加
-a,原有组将被覆盖!
6. 用户组管理:groupadd & groupdel 📁
用户组用于统一管理多个用户的权限。
✅ 创建用户组:
sudo groupadd developers
✅ 删除用户组:
sudo groupdel developers
📌 注意:
- 删除用户组前,需确保该组不是任何用户的主组。
- 可使用
cat /etc/group查看所有用户组。
7. 查看用户信息:id & groups 👀
快速查看用户 ID、所属组等信息。
📄 示例:
id john
groups john
输出类似:
uid=1001(john) gid=1001(developers) groups=1001(developers),27(sudo)
8. 切换用户身份:su 🔄
使用
su可切换到其他用户身份,适合临时提权。
📄 示例:
su - john
📌 注意:
- 加上
-表示加载目标用户的环境变量。 - 若未提供密码,可能需要 root 权限才能切换。
9. 提权执行命令:sudo 🛡️
sudo允许授权用户以 root 或其他用户身份执行命令,是推荐的提权方式。
✅ 安装 sudo(Ubuntu 默认已安装):
sudo apt install sudo
✅ 将用户加入 sudo 组:
sudo usermod -aG sudo john
✅ 使用 sudo 执行命令:
sudo systemctl restart nginx
📌 注意:
- 不建议随意给用户
ALL=(ALL:ALL) ALL权限,应根据最小权限原则配置。 - 配置文件为
/etc/sudoers,编辑时建议使用visudo。
🧩 实战案例:ECS 上的用户管理实战 🛠️
场景一:为开发团队创建用户并分配权限 👥
你正在管理一台阿里云 Ubuntu ECS,需要为团队成员创建账号,并允许他们部署 Web 应用。
✅ 步骤如下:
- 创建用户组:
sudo groupadd devteam
- 创建用户并加入组:
sudo useradd -m -s /bin/bash -G devteam alice
sudo useradd -m -s /bin/bash -G devteam bob
- 设置密码:
sudo passwd alice
sudo passwd bob
- 配置 Web 目录权限:
sudo mkdir /var/www/project
sudo chown -R www-data:devteam /var/www/project
sudo chmod -R 775 /var/www/project
- 确保用户可以使用
sudo重启服务:
sudo usermod -aG sudo alice
sudo usermod -aG sudo bob
场景二:误删用户恢复实战 🚨
你不小心删除了一个重要用户 john,但保留了其主目录 /home/john。
✅ 恢复步骤如下:
- 重新创建用户(保持 UID 一致):
sudo useradd -u 1001 -m -d /home/john -s /bin/bash john
- 修复主目录所有权:
sudo chown -R john:john /home/john
- 恢复用户密码:
sudo passwd john
📌 注意事项与安全建议
| 项目 | 建议 |
|---|---|
| 不要长期使用 root 登录 | 推荐使用 sudo 替代 |
| 定期清理无效用户 | 防止僵尸账户带来安全隐患 |
| 设置强密码策略 | 使用 PAM 模块或修改 /etc/login.defs |
| 启用 SSH 密钥认证 | 比密码更安全,适合服务器环境 |
| 审计 sudo 日志 | 使用 journalctl 或 /var/log/auth.log |
备份 /etc/passwd, /etc/shadow, /etc/group |
防止误删或配置错误 |
🧰 小贴士(建议收藏)🔖
| 技巧 | 说明 |
|---|---|
lastlog |
查看所有用户的最后登录时间 |
finger |
查看用户详细信息(需安装) |
w |
查看当前登录用户及其活动 |
ps -u john |
查看某用户正在运行的进程 |
sudo -i |
切换到 root shell |
sudo su - |
类似功能,不推荐频繁使用 |
🎯 总结一句话:
“掌握 Linux 用户与用户组管理,就像掌握了组织一支军队的指挥权——你可以精准控制谁能做什么、不能做什么,让系统井然有序且安全可控!”
是否继续下一章?我将继续输出:
- 《Shell 命令进阶与自动化脚本》🖥️
- 《Linux 文件查找与文本处理技巧》🔍
- 《Linux 权限管理与 ACL 详解》🔐
请告诉我你想深入的方向吧!🚀

浙公网安备 33010602011771号