Linux 用户和用户组管理

《Linux 用户和用户组管理》

👤 学习目标

  1. 掌握 Linux 系统中用户与用户组的基本概念及管理命令。
  2. 理解 /etc/passwd/etc/shadow/etc/group 等核心配置文件的作用。
  3. 能够在阿里云 Ubuntu ECS 上创建、修改、删除用户与用户组,并设置权限。
  4. 学会使用 sudo 提权机制,提升系统安全性与灵活性。

🧠 核心重点(表格提炼)

操作 命令 功能说明
创建用户 useradd 添加新用户
设置密码 passwd 设置或更改用户密码
删除用户 userdel 删除用户账户
修改用户属性 usermod 修改用户信息(如主目录、登录 shell 等)
创建用户组 groupadd 添加新用户组
删除用户组 groupdel 删除用户组
查看用户信息 id, groups 显示用户 ID 和所属组
切换用户身份 su 切换到其他用户
提权执行命令 sudo 以管理员身份执行命令

🔍 详细讲解

1. 用户管理基础概念 🧱

Linux 是一个多用户操作系统,每个用户都有自己的用户名、密码、主目录和权限范围。

✅ 用户类型:

  • root 用户:系统管理员,拥有最高权限。
  • 普通用户:受限于权限,只能操作自己的主目录和特定资源。
  • 系统用户:用于运行服务(如 www-datamysql),通常不登录系统。

📌 重要文件:

  • /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 应用。

✅ 步骤如下:

  1. 创建用户组:
sudo groupadd devteam
  1. 创建用户并加入组:
sudo useradd -m -s /bin/bash -G devteam alice
sudo useradd -m -s /bin/bash -G devteam bob
  1. 设置密码:
sudo passwd alice
sudo passwd bob
  1. 配置 Web 目录权限:
sudo mkdir /var/www/project
sudo chown -R www-data:devteam /var/www/project
sudo chmod -R 775 /var/www/project
  1. 确保用户可以使用 sudo 重启服务:
sudo usermod -aG sudo alice
sudo usermod -aG sudo bob

场景二:误删用户恢复实战 🚨

你不小心删除了一个重要用户 john,但保留了其主目录 /home/john

✅ 恢复步骤如下:

  1. 重新创建用户(保持 UID 一致):
sudo useradd -u 1001 -m -d /home/john -s /bin/bash john
  1. 修复主目录所有权:
sudo chown -R john:john /home/john
  1. 恢复用户密码:
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 详解》🔐

请告诉我你想深入的方向吧!🚀

posted @ 2023-03-30 21:22  红尘过客2022  阅读(58)  评论(0)    收藏  举报