Linux文件权限由ls -l输出最左10字符表示:第1位为文件类型,后9位每3位分别对应所有者、所属组、其他用户的读(r)、写(w)、执行(x)权限;数字权限用八进制三位表示,r=4、w=2、x=1;特殊权限含setuid(s)、setgid(s)、sticky(t)及SELinux(.)、ACL(+)标记。

Linux文件权限直接用 ls -l 就能看清,核心是看输出最左边那10个字符——前1位表示文件类型,后9位分三组,每组3位分别对应所有者(user)、所属组(group)、其他用户(others)的读(r)、写(w)、执行(x)权限。
一、读懂 ls -l 输出的权限字段
运行 ls -l filename,典型输出如:
-rw-r--r-- 1 user group 1024 Jan 1 12:00 file.txt
其中 -rw-r--r-- 是权限部分:
- 第1位:- 表示普通文件(d=目录,l=符号链接,c/b=字符/块设备等)
- 第2–4位(rw-):文件所有者权限 → 可读可写,不可执行
- 第5–7位(r--):所属组用户权限 → 仅可读
- 第8–10位(r--):其他用户权限 → 仅可读
二、数字权限(八进制)与字母权限的对应关系
权限也可用三位八进制数表示,每位对应一组权限(u/g/o),每组按 r=4、w=2、x=1 相加:
- rwx = 4+2+1 = 7
- rw- = 4+2+0 = 6
- r-x = 4+0+1 = 5
- r-- = 4+0+0 = 4
例如 chmod 644 file.txt 等价于 chmod u=rw,g=r,o=r file.txt,结果就是上面看到的 -rw-r--r--。
三、快速判断关键权限是否开启
不用死记,抓住三个常用判断点:
- 想编辑文件?看所有者或组是否有 w(或数字权限对应位 ≥2)
- 想执行脚本?对应位置必须有 x(≥1),且文件非目录;目录需 x 才能 cd 进入
- 想查看内容?对应位置有 r(≥4)即可(目录需 r 才能 ls 列出内容)
四、特殊权限和隐藏细节不能漏
除了基础 rwx,还要注意这些常见扩展:
- 权限位出现 s(如 rws 或 r-s):表示 setuid/setgid,执行时临时获得文件所有者/所属组身份
- 权限位出现 t(如 rwt):sticky bit,常见于 /tmp,只允许文件所有者删除自己文件
- 权限末尾带 .(如 -rw-r--r--.):SELinux 上下文启用
- 权限末尾带 +(如 -rw-r--r--+):存在扩展属性(如 ACL)
查扩展属性用 getfacl filename,查 SELinux 上下文加 -Z 参数:ls -lZ filename。
基本上就这些。权限本质就是“谁对什么能做什么”,看懂那10个字符,再结合 chmod/chown/getfacl 等命令,全部场景都够用了。










