Linux文件权限由ls -l输出的10字符字符串表示:第1位为文件类型,2–4位为所有者权限,5–7位为所属组权限,8–10位为其他人权限;数字权限按r=4、w=2、x=1计算,每组相加得0–7,顺序为user/group/others;常用值为644(文件默认)、755(目录)、600(私密文件);chmod可结合符号(如u+x)或数字(如775)修改,遵循最小权限原则。

Linux文件权限看一眼 ls -l 就能搞明白,关键是理解三组“rwx”分别对应谁、代表什么、怎么改——不背命令,靠逻辑记。
权限字符串怎么看:从左到右拆解
执行 ls -l filename,输出第一列类似 -rw-r--r--,共10个字符:
- 第1位是文件类型:
-普通文件,d目录,l软链接 - 第2–4位(如
rw-)是所有者(user)权限:读(r)、写(w)、执行(x) - 第5–7位(如
r--)是所属组(group)权限 - 第8–10位(如
r--)是其他人(others)权限
比如 -rwxr-xr-- 表示:所有者可读写执行,组内用户可读可执行,其他人只能读。
数字权限怎么算:3位八进制速查法
r=4,w=2,x=1,无权限=0;每组相加得一个数字(0–7),顺序仍是 user/group/others。
-
rw-r--r--→644(4+2+0 / 4+0+0 / 4+0+0) -
rwxr-x---→750(4+2+1 / 4+0+1 / 0+0+0) -
rwxrwxrwx→777(全开,慎用)
记熟三个常用数:644(文件默认)、755(目录/可执行脚本)、600(私密文件,如 SSH 密钥)。
高频场景怎么改:chmod 用对才安全
改权限不用死记参数,按需选最简写法:
- 给脚本加执行权:
chmod +x deploy.sh(自动加 user/group/others 的 x) - 只让所有者读写:
chmod 600 config.json - 开放目录给组协作:
chmod 775 project/(注意目录必须有 x 才能 cd 进入) - 递归改整个项目:
chmod -R 644 *.txt(谨慎用 -R,别误伤目录)
小技巧:用 chmod u+x 只给所有者加执行,chmod go-w 去掉组和其他人的写权限——比数字更精准。
权限不够?先看是谁、在哪、要干啥
报错 “Permission denied” 别急着 chmod 777,先定位问题:
- 用
ls -l看当前文件/目录权限和所属用户组 - 用
id看你属于哪些组,是否在目标文件的 group 里 - 如果是执行失败,确认是不是目录缺 x(cd 不进)、文件缺 x(./run.sh 报错)、或脚本首行少了
#!/bin/bash
真正安全的做法:最小权限原则——够用就行,比如 web 服务静态文件设为 644,上传目录设为 755 并确保属主是服务运行用户。
基本上就这些。权限不是玄学,是“谁在什么位置能做什么”的清晰约定——看懂那10个字符,再配两个常用数字,日常完全够用。










