Linux 作为多用户、多任务操作系统,用户账户、用户组与文件权限是系统安全和资源管控的核心基础。无论是日常运维、服务器管理还是程序部署,都必须熟练掌握相关命令与原理。本文从理论概念、核心配置文件、常用命令、权限规则到实战案例,全面讲解 Linux 用户管理与文件权限体系,搭配完整可复现的实操命令,适合零基础入门与复习巩固。

一、Linux 用户基础概念

  1. 用户标识:UID

Linux 系统不会直接识别用户名,而是依靠用户ID(UID) 区分每一个账户,UID 具有全局唯一性。

• root 超级管理员:UID 固定为 0,拥有系统最高所有权限;

• 系统用户:UID 通常小于 1000,主要用于运行后台服务、进程,一般不允许登录系统;

• 普通用户:UID 从 1000 开始依次分配,权限受限,仅能操作自身家目录及授权资源。

  1. 核心配置文件

系统所有用户信息均存储在固定配置文件中,是理解用户体系的关键。

  1. /etc/passwd
    保存所有用户基础信息,所有用户均可读取,文件内容以冒号 : 分割为 7 个字段,依次为:用户名、密码占位符、UID、GID、用户备注、家目录、默认登录 Shell。

  2. /etc/shadow
    专门存储用户加密密码、密码有效期、锁定状态等安全信息,权限严格,仅 root 用户可以查看和编辑,共 9 个字段,保障账户密码安全。

二、用户管理命令实操

Linux 提供两套常用用户创建命令:useradd(命令行模式)和 adduser(交互式模式),搭配修改、删除、密码管理命令,完成全流程用户操作。所有涉及系统级修改的命令,普通用户需加 sudo 提权执行。

  1. 创建用户

• useradd:纯命令行创建,需手动补充密码、家目录等配置

-m 自动创建用户家目录在这里插入图片描述

• adduser:交互式创建,一步步引导设置密码、个人信息,自动生成家目录,新手更友好
在这里插入图片描述
2. 设置/修改用户密码

使用 passwd 命令管理密码,root 可修改任意用户密码,普通用户仅能修改自身密码。

为指定用户设置密码

在这里插入图片描述

  1. 修改用户信息

usermod 用于调整已有用户的用户名、锁定账户、归属组等信息:

-L 锁定账户,禁止登录

-U 解锁账户

-l 修改登录用户名

-c 添加用户备注信在这里插入图片描述

  1. 删除用户

userdel 用于删除账户,搭配 -r 参数可同步删除用户家目录、邮件等关联文件,避免残留垃圾文件:

-r 连带删除家目录

在这里插入图片描述

三、用户组管理

用户组可以将多个用户归为一组,统一分配权限,是实现多用户资源共享的核心方式。同一组内的用户可按照组权限访问共享文件/目录。

  1. 核心配置文件

/etc/group:存储系统所有用户组信息,冒号分割为 4 个字段:组名、组密码占位符、组ID(GID)、组内成员列表。

  1. 常用组管理命令

  2. 创建新用户组

  3. 修改组名称

格式:groupmod -n 新组名 旧组名

  1. 将用户添加至附加组

将 test_1 加入 shared_1 组

在这里插入图片描述

  1. 删除空用户组
    在这里插入图片描述

四、Linux 文件权限体系

文件权限是 Linux 安全体系的重中之重,系统通过权限控制文件所有者、所属组、其他所有用户的访问行为。

  1. 权限查看与基础标识

使用 ls -l 命令查看文件/目录详细信息,首列即为权限标识。

• 文件类型:- 代表普通文件,d 代表目录,l 代表软链接;

• 权限分为三段:所有者权限、所属组权限、其他用户权限,每段固定 3 位;

• 权限字符定义:

◦ r(读):对应数值 4,文件可读取内容,目录可查看列表;

◦ w(写):对应数值 2,文件可编辑删除,目录可新建/删除文件;

◦ x(执行):对应数值 1,文件可运行脚本/程序,目录可进入。

  1. 默认权限掩码 umask

系统新建文件、目录的默认权限由 umask 掩码决定,计算规则:

• 普通文件原始最大权限:666,最终权限 = 666 - umask 值

• 目录原始最大权限:777,最终权限 = 777 - umask 值

系统默认 umask 为 022,因此:

• 新建文件默认权限:644

• 新建目录默认权限:755

可使用 umask 命令查看当前掩码,也可临时/永久修改。

  1. 权限修改命令 chmod

两种使用方式:八进制数字模式(简洁常用)、符号模式(精准修改),-R 参数可递归修改目录及内部所有文件权限。

  1. 八进制模式(推荐)

设置文件权限为 755

递归修改整个目录权限

  1. 符号模式

u=所有者 g=所属组 o=其他用户 a=所有用户

给所有者添加执行权限,移除组用户写权限

在这里插入图片描述

  1. 修改文件归属 chown

chown 命令用于修改文件/目录的所有者和所属组,格式:chown 所有者:所属组 文件名。

修改文件所有者为 root,所属组为 zhang

递归修改目录归属

五、综合实战案例(完整可执行)

结合用户、用户组、文件权限知识,完成一套从创建用户、组建共享组、配置共享目录到权限管控的完整实操,复制命令即可在 Linux 环境运行。

步骤1:创建测试用户并设置密码

在这里插入图片描述

查看用户信息

步骤2:创建共享用户组,添加用户

将用户加入共享组

查看组内成员

在这里插入图片描述

步骤3:切换用户,创建测试目录与文件
在这里插入图片描述

步骤4:配置共享目录权限(组内用户可读写)

修改目录归属为 testuser:testgroup

sudo chown -R testuser:testgroup testdir/

设置权限 770:仅所有者和组内用户可读写执行,其他用户无任何权限

sudo chmod -R 770 testdir/
ls -l
在这里插入图片描述

步骤5:清理测试环境

删除用户及家目录

在这里插入图片描述
六、知识点总结

  1. Linux 依靠 UID、GID 识别用户与用户组,/etc/passwd、/etc/shadow、/etc/group 是三大核心配置文件;

  2. 用户生命周期管理:useradd/adduser 创建、usermod 修改、userdel 删除、passwd 管理密码;

  3. 用户组用于批量管控权限,是实现多用户文件共享的核心方案;

  4. 文件权限由 r、w、x 组成,支持数字与符号两种修改方式,chmod 改权限、chown 改归属;

  5. umask 决定新建文件和目录的默认权限,递归参数 -R 常用于目录批量权限配置。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐