Skip to content

Linux 文件权限详解

1. 核心概念三要素

Linux 中每个文件/目录都有三个关键属性:

  1. 所有者(Owner):文件的创建者/拥有者(通常是用户账户)
  2. 所属组(Group):文件所属的用户组(多个用户可属于同一组)
  3. 其他人(Others):除所有者和组外的所有用户

📌 三者关系图解:

[用户]──所有者──> [文件]
      └─所属组─┐
[用户]──────────┘
[其他用户]───────> 其他人

2. 权限类型

权限分为三种操作级别:

权限字母权限值文件含义目录含义
r4读取文件内容列出目录中的文件
w2修改文件内容创建/删除目录内的文件
x1作为程序执行进入目录(cd)

🔍 示例图解:

文件:report.txt
- r w -     → 可读可写,不可执行

目录:/projects/
d r w x     → 可列出文件、可创建文件、可进入

3. 权限查看(ls -l 图解)

执行 ls -l 显示的信息结构:

bash
-rwxr-xr-- 1 alice dev-team 1024 Aug 10 09:00 script.sh

▶️ 拆解分析

部分含义示例值
第 1 字符文件类型(-文件,d目录)-
权限 9 字符分三组(见下图)rwxr-xr--
所有者文件拥有者alice
所属组文件所在组dev-team

🔑 权限 9 字符图解

 r w x   r - x   r - -
 ─┬───   ─┬───   ─┬───
  │       │       └── 其他人权限(r--:只读)
  │       └─── 所属组权限(r-x:读+执行)
  └─── 所有者权限(rwx:读+写+执行)

4. 权限的数字表示(八进制)

权限可用 3 位数表示,每位数=权限值之和:

权限r(4)w(2)x(1)计算结果
所有者4+2+17
4+0+15
其他4+0+04

▶️ 示例:rwxr-xr-- = 754


5. 权限修改命令

  1. 修改权限chmod

    bash
    # 符号模式(适合初学者)
    chmod u+x file.txt      # 给所有者添加执行权限
    chmod g-w file.txt      # 移除所属组的写权限
    chmod o=r file.txt      # 其他人设为只读
    
    # 数字模式(常用)
    chmod 644 file.txt      # rw-r--r--
  2. 修改所有者/组chown, chgrp

    bash
    chown alice file.txt          # 修改所有者
    chown alice:dev-team file.txt # 同时修改所有者和组
    chgrp dev-team file.txt       # 仅修改所属组

6. 关键应用场景

  1. 目录权限规则

    • 要删除文件:需要所在目录的w权限(而非文件的权限!)
    • 要访问文件:需要路径上所有目录的x权限

    📂 示例:删除 /home/alice/docs/report.txt
    需要:

    • /home/alice/docswx 权限
    • report.txt 本身不需要任何权限!
  2. 共享文件最佳实践

    • 将合作用户加入同一组(如 dev-team
    • 设置文件权限为 775(所有者+组可读写执行,其他人只读)
    bash
    chmod 775 shared_file.txt
    chown alice:dev-team shared_file.txt

7. 权限生效流程图

用户尝试访问文件

├── 是所有者? → 应用「所有者权限」
├── 是所属组成员? → 应用「组权限」
└── 其他情况 → 应用「其他人权限」

💡 总结关键点

  • 三身份:所有者其他人
  • 三权限:r(读)、w(写)、x(执行)
  • 目录权限影响文件访问路径!
  • 共享文件优先用组权限而非开放给所有人(安全!)

掌握这些基础后,再学习特殊权限(如 SUID/SGID)会更轻松! 🚀