当前位置:首页>Linux>Linux 从入门到进阶12:文件权限

Linux 从入门到进阶12:文件权限

  • 2026-09-18 12:18:45
Linux 从入门到进阶12:文件权限

源自 Unix 的经典设计理念深刻影响了 Linux,其最核心的思想便是 “一切皆文件”。在这套体系下,文本文件、磁盘设备、系统进程等各类软硬件资源,都会被统一封装成文件对象。Linux 的安全管控逻辑围绕文件权限展开,吃透文件权限,就能理解系统安全的底层逻辑。

一、用户与权限

Linux文件权限必须和用户身份绑定,以此区分不同使用者的操作权限,这三类身份分别是文件所有者、所属用户组、其他用户。

第一类是文件所有者,标识为 u,一般是最初创建文件的账号,拥有对这份文件最高的自主管控权,可修改文件归属、调整权限;

第二类是文件所属组,标识为 g,一个用户组能容纳多名用户,多用于多人协同场景,同组成员共享一套统一权限,方便批量管控团队访问资源;

第三类是其他用户,标识为 o,指代既不是文件拥有者、也未加入文件所属组的系统全部剩余账号,对应系统外部普通访问者权限。

下面结合一个案例具体说明用户与权限的关系。

公司共用一台 Linux 开发服务器,多名员工分配独立账号:

开发负责人账号:dev01团队开发成员:dev02、dev03、fe01无关人员账号:运维 ops01、财务 finance

为统一管理项目代码,管理员创建用户组 dev_team,把所有开发人员加入该组。

负责人 dev01 新建项目目录 /data/demo_project,存放业务源码,需要控制不同人的访问权限。Linux 会自动把目录绑定三类身份:所有者 (u)、所属组 (g)、其他人 (o),分别管控权限。

一、所有者 u:dev01(目录创建人)

目录是谁创建,默认谁就是所有者。

拥有的特殊权限:

  • 不受组、其他人权限约束,哪怕权限设置得再严格,所有者依旧能读写、删除目录内文件;

  • 可使用 chmod 修改整套读写执行权限;

  • 可使用 chown 更换目录的所有者、所属组。

二、所属组 g:dev_team(开发团队)

所有开发账号统一归入 dev_team,并把目录归属组设置为 dev_team。

设计目的:批量授权,简化管理

如果没有用户组,想要给 dev02、dev03、fe01 三人开放访问权限,需要单独给每个账号配置规则;使用用户组后,只需给组设置一次权限,组内所有人同步生效。

当前权限效果(g=r-x)

团队成员可以进入目录、查看代码、读取配置文件,但没有写入权限,不能修改、删除项目文件,避免多人误删源码。

三、其他人 o:系统所有陌生账号

既不是目录所有者,也不在 dev_team 组内的账号,全部归类为 other,例如财务 finance、运维 ops01。

企业源码属于保密资源,因此给 other 设置无任何权限。

二、三种基础权限

Linux只包含三种基础权限,但对目录和文件的权限设定完全不同,这一点初学Linux尤其要注意。

1、无论是文件还是目录,底层权限就三类:

  • r:读权限

  • w:写权限

  • x:执行权限

不存在第四种基础权限,所有权限控制都是这三者组合而来。

2.同一权限字符,作用在文件、目录上含义天差地别

(1)作用于普通文件

  • r:可以读取文件内容(cat、more 查看文本)

  • w:可以修改、覆盖、删除文件内容

  • x:可以把该文件当作程序、脚本运行

(2)作用于目录(文件夹)

  • r:可以列出目录里的文件名(ls 看列表)

  • w:可以在目录内新建、删除、重命名文件、子目录

  • x:关键权限,允许进入目录(cd)、读取目录下文件的属性与内容;只有 r 没有 x,只能看到文件名,打不开、读不了内部文件。

三、权限的两种标识方式

1.字符标识

执行ls -l 可查看文件权限,输出结果中后9位为权限标识,分为三组,每组3位,依次对应【所有者、所属组、其他用户】权限。

示例:-rwxr-xr--
  • 第1位:文件类型(- 普通文件、d 目录、l 软链接)

  • 2-4位(所有者):rwx(读+写+执行)

  • 5-7位(所属组):r-x(读+执行,无写)

  • 8-10位(其他用户):r--(仅读,无写、无执行)

2.数字标识(八进制权限)

通过 r(4)、w(2)、x(1) 的权重相加,快速生成权限数值,是运维中最常用的授权方式。每组权限对应一个数字,三个数字依次对应u、g、o权限。

常见权限组合:

  • rwx = 4+2+1 = 7

  • rw- = 4+2+0 = 6

  • r-x = 4+0+1 = 5

  • r-- = 4+0+0 = 4

  • --- = 0+0+0 = 0

示例:rwxr-xr-- 对应数字权限 754

四、核心权限操作命令

1.修改文件或目录的权限

chmod命令用于修改三类用户的读、写、执行权限,仅文件所有者和root用户可执行该命令,支持字符模式和数字模式两种用法。

基础语法

chmod [选项] 权限描述 文件/目录

语法说明

[选项]:命令参数,可选。

权限描述:分为符号权限法和数字权限法两种描述方法。

表  chmod命令常用参数表

参数

功能说明

-R

递归修改,目录下所有子文件、子目录同步变更权限(修改文件夹必用)

-v‌

显示每一个文件的权限修改过程,方便排查

-c

仅显示权限真正发生变化的文件,无变化不输出

数字权限法

权限描述为3位数字,r/w/x 分别对应固定数值:

r = 4w = 2x = 1

每一类身份(u/g/o)权限数值相加,组成三位数字:u g o

例:750 = 所有者 7,组 5,其他人 0 

常用数字组合对照表

数字

权限组合

含义

0

---

无任何权限

4

r--

仅可读

5

r-x

读 + 执行

6

rw-

读 + 写

7

rwx

读写执行全部权限

示例:

chmod 755 test.sh

所有者读写执行,组和其他用户读+执行

chmod 644 test.txt

所有者读写,组和其他用户只读

chmod 777 test_dir

所有用户最高权限

chmod -R 755 /home/test

递归授权目录及目录内所有文件、子目录(-R 递归参数) 

符号权限法

用户标识:u(所有者)、g(所属组)、o(其他)、a(所有用户)

操作符号:+(添加权限)、-(移除权限)、=(设置唯一权限)

示例:

chmod u+x test.sh

给所有者添加执行权限

chmod g-w test.txt

移除所属组用户的写权限

chmod a-r test.txt

移除所有用户的读权限

chmod u=rwx,g=rx,o=rx test

精准设置755权限

 2、修改文件所有者和所属组

chown命令用于更改文件/目录的归属用户和用户组,仅root用户可修改所有者,普通用户仅可修改自己文件的所属组。

基础语法

chown [选项] 归属描述 目标文件/目录

语法说明

[选项]:命令参数,可选。

归属描述:用来指定新所有者、新所属组。

表  chown命令常用参数表

参数

功能说明

-R

递归修改,目录及内部所有文件、子目录同步变更归属(修改项目文件夹必备)

-v‌

显示每一个文件的修改详情,调试排查用

-c

仅打印归属真正发生变化的文件,无变化不输出

归属描述三种写法:

1. 只改所有者

格式:用户名

示例:

# 将 test.txt 所有者改为 dev01chown dev01 test.txt

2、同时改所有者 + 所属组(冒号分隔)

格式:用户名:组名

示例:

# 所有者dev01,所属组dev_teamchown dev01:dev_team /data/demo_project

3、 只改所属组,所有者不变

示例:

# 仅修改文件所属组为 dev_team,所有者保留原样chown :dev_team test.txt

五、特殊权限

除基础9位权限外,Linux还有3种特殊权限,用于实现特殊场景的权限控制,优先级高于基础权限,常用于系统文件、服务程序授权。

1. SUID(用户特殊权限,数字4xxx)

作用:普通用户执行带有SUID权限的文件时,会临时拥有文件所有者的权限(多用于root所属的系统命令)。

特点:仅对二进制可执行文件生效,对目录、普通文件无效。

典型案例:passwd 命令拥有SUID权限,普通用户可临时以root权限修改自己的密码(无需root登录)。

授权命令:chmod 4755 /usr/bin/passwd

2. SGID(组特殊权限,数字2xxx)

作用:分为文件和目录两种场景:

  • 文件:用户执行文件时,临时拥有文件所属组的权限

  • 目录:在该目录内新建的所有文件/子目录,自动继承目录的所属组(团队共享目录必备)

授权命令:chmod 2755 /home/share

3. Sticky Bit(粘滞位,数字1xxx)

作用:仅对目录生效,设置后目录内的文件仅文件所有者和root可删除、修改,其他用户即使拥有目录w权限,也无法删除他人文件。

典型场景:系统临时目录 /tmp,所有用户可写入文件,但只能删除自己的文件。

授权命令:chmod 1777 /tmp

六、文件权限小结

Linux文件、目录权限基于所有者(u)、所属组(g)、其他人(o)三类身份管控。u为文件创建者,拥有最高权限;g为用户组;o为无关用户。

系统仅有r、w、x三种基础权限,且对文件和目录作用不同:文件权限对应读取、修改、执行,目录权限对应查看列表、改动文件、进入目录。

权限可通过ls -l按字符标识或八进制数字标识查看。日常通过chmod修改读写执行权限、chown修改文件归属,搭配-R参数可递归操作目录及内部文件。

最新文章

随机文章