linux文件权限由三组角色(所有者、所属组、其他人)和三类操作(读、写、执行)组合决定,通过ls -l查看,可用符号法或八进制数字法(如644、755)设置,目录的执行位表示能否进入而非运行。

Linux文件权限直接决定谁可以读、写或执行某个文件,看懂它是最基础也最关键的运维能力。重点不是死记符号,而是理解三组角色(所有者、所属组、其他人)和三类操作(读、写、执行)的组合逻辑。
用ls -l命令查看详细权限
在终端输入:
ls -l 文件名
例如:ls -l /etc/passwd,会输出类似:
-rw-r–r– 1 root root 2718 Apr 10 10:22 /etc/passwd
第一列 -rw-r–r– 就是权限字符串,共10位:
- 第1位:文件类型(- 表示普通文件,d 表示目录,l 表示软链接)
- 第2–4位:所有者(user)权限 → rw- 表示可读可写,不可执行
- 第5–7位:所属组(group)权限 → r– 表示仅可读
- 第8–10位:其他人(others)权限 → r– 同样仅可读
数字法(八进制)快速理解权限值
每类权限对应一个数字:r=4,w=2,x=1,- =0;三类相加即得三位数。
- rw- → 4+2+0 = 6
- r– → 4+0+0 = 4
- r-x → 4+0+1 = 5
- 所以 rw-r–r– 对应 644
- drwxr-xr-x(常见目录权限)→ 755
用chmod修改权限(两种常用写法)
改权限本质是调整那三组“rwx”的开关状态,推荐优先用符号法,更直观安全:
- chmod u+x script.sh → 给所有者增加执行权限
- chmod go-w file.txt → 去掉组和其他人的写权限
- chmod a=r file.txt → 所有人只有读权限(a = all)
- 数字法简洁但易误操作:chmod 750 mydir/ → 所有者全权(7),组可读可执行(5),其他人无权限(0)
特别注意:目录权限的执行位(x)含义不同
对目录来说,“x”不是“运行”,而是“能否进入该目录”或“能否访问其下的文件名”。没有x,即使有r权限也无法ls或cd进去。
- drw-r–r– → 可以列出内容(r),但无法进入(缺x),cd会报Permission denied
- dr-xr-xr-x → 可进入、可访问子项,但不能新建/删改(缺w)
- 真正安全的目录权限常为 755(公开可访)或 700(仅所有者可用)
基本上就这些。不复杂但容易忽略——多敲几次ls -l,对照chmod改一改,权限逻辑自然就熟了。