linux文件权限由ls -l输出的10字符字符串表示:第1位为文件类型(-普通文件、d目录等),后9位每3位一组,依次为属主、属组、其他人的r(读=4)、w(写=2)、x(执行=1)权限,-表示无对应权限。

直接看 ls -l 输出的前10个字符,第1位是类型,后9位每3位一组分别对应属主、属组、其他人的 rwx 权限 —— 这就是 Linux 识别文件访问模式的核心依据。
怎么看 ls -l 的权限字符串
执行 ls -l filename 后,第一列类似 -rw-r--r-- 或 drwxr-xr-x,共10个字符:
- 第1个字符是文件类型:
-表示普通文件,d表示目录,l表示软链接,c/b是设备文件等 - 第2–4位(如
rw-)是属主(user)权限 - 第5–7位(如
r--)是属组(group)权限 - 第8–10位(如
r--)是其他人(other)权限 - 每个位置上
r、w、x分别代表读、写、执行;-表示该权限未开启
例如 -rwxr-x--- 表示:普通文件,属主可读写执行,属组可读可执行但不可写,其他人无任何权限。
为什么 r 对目录和文件含义不同
Linux 对权限的解释严格依赖对象类型,这点容易被忽略:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 对文件:
r= 能读取内容(如cat),w= 能修改内容(如echo >),x= 能作为程序执行(如./script.sh) - 对目录:
r= 能列出内容(ls目录内文件名),w= 能增删改目录内文件名(需配合x才能实际操作),x= 能进入该目录(cd)、访问其子路径(如cat dir/file) - 常见误区:删一个文件,真正检查的是该文件所在目录的
w和x权限,而不是文件自身的w权限
数字权限(如 755)怎么跟 rwx 对应
三位八进制数每位对应一组权限,用 4-2-1 加权法换算:
-
r=4、w=2、x=1,-=0 - 属主权限
rwx→ 4+2+1 =7;r-x→ 4+0+1 =5;r--→ 4+0+0 =4 - 所以
drwxr-xr-x对应755,-rw-r--r--对应644 - 注意:
chmod 777并不等于“完全放开”——对目录它允许进入和列目录,但对文件它只是赋予执行权;而chmod 600是敏感文件(如私钥)的常见设置
哪些地方最容易看错权限
真实运维中,以下几点常导致误判:
- 把
ls -l输出的第2–10位当成“统一字符串”去数,忽略了第1位类型字符的存在,结果错把d当成属主的r - 看到目录有
r就以为能cd进去,其实缺x就会被拒绝:bash: cd: dirname: Permission denied - 用
chmod 777修复“无法访问”问题,却没意识到这会暴露目录结构甚至允许恶意覆盖文件 - 忽略隐藏属性(如
ls -l结尾带@或+),它们可能来自 ACL 或扩展属性,chmod不会改变它们
权限本质不是“能不能打开”,而是“Linux 内核在每次系统调用(open/read/write/execve)时做的一次三元组匹配”。看懂那10个字符,就等于看懂了内核的判决书。










