教程目录
Linux 用户和组管理 - 账户创建、权限控制、安全配置
深入学习 Ubuntu 24.10 Server 用户和组管理,掌握用户账户创建、组管理、权限分配、sudo 配置等核心技能。通过实际场景演示,让初学者轻松掌握用户管理的核心概念和实践技能。
🚀 实践环境(SSH)
欢迎使用Easylearning为您专属打磨的自由学习实践环境, 登录后马上开始边学边练吧!
StudyBoard
创建StudyBoard练习实例,系统自动连接到实例后,可以在教程中直接发送远程命令到实例中执行并能查看结果,享受更好的学习体验。
Linux 用户和组管理
Linux 用户和组管理是系统管理的核心技能之一。在企业环境中,合理的用户权限管理不仅保障系统安全,还能提高工作效率。本教程将通过实际场景演示,帮助您掌握用户管理的各个方面。
学习目标
完成本章学习后,您将能够:
- 用户概念理解: 深入理解 Linux 用户和组的概念、UID/GID 机制及其在系统安全中的重要作用
- 账户管理操作: 熟练掌握用户账户的创建、修改、删除和密码管理等基础操作
- 组管理策略: 学会创建和管理用户组,实现基于组的权限分配和访问控制
- sudo 权限配置: 配置 sudo 权限和安全策略,实现精细化的权限控制
- 环境配置优化: 掌握用户环境配置、Shell 定制和系统安全最佳实践
🏗️ Linux 用户系统架构
Linux 用户管理系统基于多用户、多任务的设计理念,通过 UID(用户ID)和 GID(组ID)的数字标识符来实现精确的权限控制。这套系统不仅保障了系统安全,还为多用户协作提供了灵活的权限管理机制。
用户系统核心概念
用户类型分类:
- 超级用户(root):UID = 0,拥有系统的最高权限,可以执行任何操作
- 系统用户:UID 1-999,用于运行系统服务和守护进程,通常不允许登录
- 普通用户:UID ≥ 1000,日常工作用户,权限受限但可以通过 sudo 提升权限
权限控制机制:
- 所有者权限:文件/目录的创建者拥有的权限
- 组权限:同组用户共享的权限
- 其他用户权限:系统中其他用户的权限
- 特殊权限:SUID、SGID、Sticky Bit 等高级权限机制
用户管理系统架构
👤 用户账户管理
查看用户信息
在开始用户管理之前,我们需要了解如何查看系统中的用户信息。这些命令将帮助您了解当前系统的用户状态。
理解 /etc/passwd 文件格式:
每行包含7个字段,用冒号分隔:
用户名:密码占位符:UID:GID:用户描述:主目录:登录Shell
示例解析:
ubuntu:x:1000:1000:Ubuntu User,,,:/home/ubuntu:/bin/bash
ubuntu
: 用户名x
: 密码占位符(实际密码存储在 /etc/shadow)1000
: 用户ID(UID)1000
: 主组ID(GID)Ubuntu User,,,
: 用户描述信息/home/ubuntu
: 用户主目录/bin/bash
: 登录Shell
创建用户账户
让我们通过一个实际场景来学习用户创建:假设您是一家小型软件公司的系统管理员,需要为新入职的开发人员创建账户。
场景1:为开发团队创建用户
useradd 参数详解:
-m
: 创建用户主目录-s /bin/bash
: 设置登录Shell-c "描述"
: 添加用户描述信息-G 组名
: 将用户添加到附加组-d /path
: 指定主目录路径(可选)-e YYYY-MM-DD
: 设置账户过期日期(可选)
场景2:创建系统服务用户
系统用户参数说明:
-r
: 创建系统用户(UID < 1000)-s /bin/false
: 禁止Shell登录-s /sbin/nologin
: 禁止登录但显示友好消息
设置用户密码
密码策略参数:
-M 90
: 密码最长有效期90天-m 7
: 密码最短使用期7天-W 7
: 密码过期前7天开始警告-I 30
: 密码过期后30天禁用账户-E YYYY-MM-DD
: 设置账户过期日期
修改用户账户
在实际工作中,经常需要修改用户信息,比如员工职位变更、部门调动等。
场景3:员工职位变更
usermod 常用参数:
-a -G 组名
: 添加到附加组(保留原有组)-G 组名
: 设置附加组(替换原有组)-c "描述"
: 修改用户描述-d /新路径
: 修改主目录-s /新shell
: 修改登录Shell-l 新用户名
: 修改用户名-L
: 锁定账户-U
: 解锁账户
场景4:账户安全管理
删除用户账户
当员工离职时,需要安全地删除用户账户和相关数据。
场景5:员工离职处理
userdel 参数说明:
userdel 用户名
: 删除用户但保留主目录userdel -r 用户名
: 删除用户和主目录userdel -f 用户名
: 强制删除(即使用户正在登录)
安全提醒: 删除用户前请确保:
- 用户没有正在运行的进程
- 重要数据已备份
- 相关服务配置已更新
- 文件所有权已转移给其他用户
👥 组管理
组是Linux权限管理的重要组成部分,通过合理的组设计可以简化权限管理并提高安全性。
组的概念和类型
组的分类:
- 主组(Primary Group):用户的默认组,在 /etc/passwd 中指定
- 附加组(Secondary Groups):用户可以属于多个附加组
- 系统组:GID < 1000,用于系统服务
- 用户组:GID ≥ 1000,用于普通用户
创建和管理组
场景6:部门组织架构设计
groupadd 参数说明:
-g GID
: 指定组ID-r
: 创建系统组-f
: 如果组已存在则成功退出
场景7:用户组分配
组成员管理
组成员管理命令:
gpasswd -a 用户 组
: 添加用户到组gpasswd -d 用户 组
: 从组中移除用户gpasswd -A 用户 组
: 设置组管理员getent group 组名
: 查看组成员
修改和删除组
🔐 sudo 权限管理
sudo(Super User Do)是Linux系统中实现权限提升的核心机制。通过合理配置sudo,可以在保障系统安全的同时,为用户提供必要的管理权限。
sudo 工作原理
sudo 安全机制:
- 身份验证:用户需要输入自己的密码(而非root密码)
- 权限检查:检查
/etc/sudoers
文件中的权限配置 - 命令执行:以指定用户身份执行命令
- 日志记录:所有sudo操作都会记录在系统日志中
sudo 优势:
- 安全性:避免直接使用root账户
- 可审计:所有操作都有日志记录
- 精细控制:可以限制用户只能执行特定命令
- 时间限制:密码验证有时效性(默认15分钟)
基础 sudo 配置
场景8:配置开发团队sudo权限
sudoers 语法说明:
用户/组 主机=(运行身份:组身份) [NOPASSWD:] 命令列表
%组名
: 表示组ALL
: 表示所有主机/用户/命令NOPASSWD:
: 免密码执行命令路径
: 具体的命令路径
高级 sudo 配置
场景9:创建命令别名和用户别名
sudo 日志和审计
📁 文件权限和所有权
文件权限是Linux安全模型的基础,理解和正确配置文件权限对系统安全至关重要。
权限系统概述
权限类型:
- r (read, 4): 读取权限
- w (write, 2): 写入权限
- x (execute, 1): 执行权限
权限对象:
- u (user): 文件所有者
- g (group): 文件所属组
- o (other): 其他用户
- a (all): 所有用户
查看和理解权限
权限显示格式解析:
-rwxr-xr-- 1 alice engineering 1024 Jan 13 10:30 script.sh
│││││││││ │ │ │ │ │ │
│││││││││ │ │ │ │ │ └─ 文件名
│││││││││ │ │ │ │ └─ 修改时间
│││││││││ │ │ │ └─ 文件大小
│││││││││ │ │ └─ 所属组
│││││││││ │ └─ 所有者
│││││││││ └─ 硬链接数
│││││││└─ 其他用户权限 (r--)
││││││└─ 组权限 (r-x)
│││└─ 所有者权限 (rwx)
└─ 文件类型 (- 普通文件, d 目录, l 符号链接)
修改文件权限
场景10:项目文件权限管理
常用权限数字组合:
755
: 目录和可执行文件(rwxr-xr-x)644
: 普通文件(rw-r--r--)600
: 私有文件(rw-------)700
: 私有目录(rwx------)666
: 数据文件(rw-rw-rw-)777
: 完全开放(rwxrwxrwx,不推荐)
修改文件所有权
chown 命令格式:
chown 用户 文件
: 只修改所有者chown 用户:组 文件
: 修改所有者和组chown :组 文件
: 只修改组(等同于 chgrp)chown -R
: 递归修改目录及其内容
特殊权限
Linux提供了三种特殊权限,用于实现更复杂的安全需求。
SUID (Set User ID)
SGID (Set Group ID)
Sticky Bit
特殊权限数字表示:
4000
: SUID2000
: SGID1000
: Sticky Bit- 可以组合使用,如
6755
= SUID + SGID + 755
🏠 用户环境配置
用户环境配置决定了用户登录后的工作环境,包括环境变量、别名、提示符等。
Shell 配置文件
配置文件加载顺序:
/etc/profile
- 系统级全局配置/etc/bash.bashrc
- 系统级bash配置~/.profile
- 用户级全局配置~/.bashrc
- 用户级bash配置~/.bash_profile
- 用户级登录配置
场景11:自定义用户环境
用户配额管理
🛠️ 实践练习
练习1:企业用户管理场景
创建一个完整的企业用户管理场景,包括部门组织、权限分配和安全配置。
练习2:安全加固配置
📊 用户管理最佳实践
安全策略建议
用户管理安全原则:
- 最小权限原则: 用户只获得完成工作所需的最小权限
- 职责分离: 不同职能的用户使用不同的账户
- 定期审计: 定期检查用户权限和活动
- 强密码策略: 实施复杂密码要求和定期更换
- 及时清理: 及时删除不再需要的用户账户
监控和维护
实践练习
通过实际操作来巩固所学知识,在真实的系统化的训练环境中练习本教程的内容。
Linux 用户和组管理 - 账户创建、权限控制、安全配置 - 实践练习
基于 Linux 用户和组管理 - 账户创建、权限控制、安全配置 教程的实践练习