linux文件权限由ls -l显示的10字符字符串决定:第1位为文件类型,2–4位为所有者权限,5–7位为所属组权限,8–10位为其他人权限;r=4、w=2、x=1,数字总和即八进制权限值。

Linux文件权限直接决定谁能读、写或执行某个文件,看懂它不难,但细节容易忽略。关键不是死记符号,而是掌握怎么看、怎么快速判断、怎么针对性调整。
用 ls -l 看懂权限字符串
运行 ls -l filename,最左边一串类似 -rwxr-xr– 的10个字符就是权限信息:
- 第1位表示文件类型:- 是普通文件,d 是目录,l 是软链接,c/b 是设备文件
- 第2–4位(如 rwx)是所有者(user)权限
- 第5–7位(如 r-x)是所属组(group)权限
- 第8–10位(如 r–)是其他人(others)权限
- r=读(4),w=写(2),x=执行(1),- 表示无该权限;数字总和就是八进制表示(如 rwx = 7,r-x = 5)
快速识别常见权限组合含义
不用每次换算,记住几个高频组合更省时间:
- 644(-rw-r–r–):文件所有者可读写,组和其他人只读 —— 普通文本/配置文件常用
- 755(-rwxr-xr-x):所有者全权,组和其他人可读可执行 —— 脚本或可执行程序常用(目录也常设这个,方便进入)
- 700(-rwx——):仅所有者有全部权限 —— 敏感脚本、私钥文件推荐
- 600(-rw——-):仅所有者可读写 —— ssh私钥、.netrc 等保密文件标准权限
用 stat 命令获取更直观的权限详情
stat filename 会显示权限的符号形式和八进制形式,并附带用户、组、修改时间等完整元数据:
- 输出中 access: (0644/-rw-r–r–) 这一行同时展示两种表示法,一目了然
- 加 -c 可定制输出,例如 stat -c “%A %a %U:%G” file 快速查看权限、数字值、所有者与组
- 对目录用 stat -d dirname 避免列出内容,只看目录自身权限
权限怎么看?别漏掉隐藏影响因素
光看文件权限还不够,实际访问还受其他限制:
- 目录的执行(x)权限决定能否 进入或遍历 它 —— 即使文件权限是 777,若父目录没 x,也无法访问该文件
- umask 会影响新建文件的默认权限(如 umask 002 → 新建文件默认 664,目录 775)
- ACL(访问控制列表)或 SELinux 等扩展机制可能覆盖基础权限,可用 getfacl filename 查看是否启用额外规则
基本上就这些。权限不是越复杂越好,关键是根据用途选对组合,再配合 ls -l 和 stat 养成快速确认习惯 —— 看得清,改得准,少踩坑。