linux文件权限核心是“谁对什么有哪种操作权”,chmod通过数字法(如644、755,三位八进制分别对应属主/属组/其他人,r=4、w=2、x=1)和符号法(u/g/o/a配合+/-/=操作r/w/x)实现精准控制,目录需x权限才能进入。

Linux 文件权限设置的核心是明确“谁对什么有哪种操作权”,chmod 就是用来精确控制这个的命令。它提供两种主流写法:数字法(简洁高效)和符号法(直观灵活),两者本质一致,只是表达方式不同。
数字法:三位八进制数的逻辑
每个文件或目录的权限被划分为三组:所有者(user)、所属组(group)、其他用户(others)。每组用一个 0–7 的数字表示,该数字是 r、w、x 对应数值(4/2/1)相加的结果:
- r = 4(读),w = 2(写),x = 1(执行),- = 0
- 例如:7 = 4+2+1 → rwx;6 = 4+2+0 → rw-;5 = 4+0+1 → r-x;4 = 4+0+0 → r--
- chmod 644 file 表示:所有者可读写(6),组和其他人仅可读(4 和 4)
- chmod 755 dir 表示:所有者全权限(7),组和其他人可读可执行(5 和 5)——这是目录常用权限,允许进入和查看内容,但不许修改
符号法:按需增删改的精准控制
符号法由三部分组成:对象 + 操作 + 权限,不覆盖未提及的权限位,适合局部调整:
- 对象:u(所有者)、g(组)、o(其他人)、a(所有人)
- 操作:+(添加)、-(移除)、=(完全重设)
- 权限:r、w、x(也可组合,如 rx、wx)
- 例子:
chmod u+x script.sh给所有者加执行权;chmod go-w config.log移除组和其他人的写权;chmod a=r file.txt让所有人只能读
常见场景与实用技巧
实际使用中,需注意几个关键点:
- 目录必须有 x 权限才能进入:即使有 r 权限,没 x 就 cd 不进去;ls -l 看到 d 开头的条目,x 对应“可进入”
-
递归修改用 -R:如
chmod -R 755 myproject/,但慎用于含敏感配置的目录 - 避免 chmod 777:开放所有权限会带来安全风险,坚持最小权限原则
- 符号链接本身不继承权限:chmod 默认修改的是链接目标(除非加 -h 选项)
权限怎么看?先读懂 ls -l
执行 ls -l 是理解权限的第一步。例如输出:-rw-r--r-- 1 user group 123 Jun 12 12:00 note.txt
- 第 1 字符:- 表示普通文件(d 表示目录,l 表示链接)
- 第 2–4 字符(rw-):所有者权限 → 可读可写
- 第 5–7 字符(r--):组权限 → 仅可读
- 第 8–10 字符(r--):其他人权限 → 仅可读











