linux文件权限由ls -l输出前10字符表示:第1位为文件类型,后9位每3位分属所有者、所属组、其他用户,对应r(4)、w(2)、x(1)的八进制数值;常用权限如644、755、777,典型场景包括脚本执行(+x)、Web服务读取(644/755)、协作目录(775)、敏感文件保护(600)。

Linux文件权限看一眼 ls -l 输出就能明白,关键在前10个字符——第1位是文件类型,后9位每3位一组,分别对应所有者(user)、所属组(group)、其他用户(others)的读(r)、写(w)、执行(x)权限。
怎么看权限?盯住这10个字符
运行 ls -l filename,例如:
-rw-r--r-- 1 user dev 1024 Jan 1 10:00 config.txt
开头 -rw-r--r-- 就是权限串:
- 第1位:- 表示普通文件(d=目录,l=软链接,c/b=设备文件)
- 2–4位(rw-):所有者可读可写,不可执行
- 5–7位(r–):所属组只可读
- 8–10位(r–):其他用户也只可读
数字法(八进制)怎么换算?记住421
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-x对应 645
常用组合:644(文件默认)、755(可执行文件/脚本)、777(慎用!全开放)
哪些场景最常调权限?直接给操作建议
不是所有文件都要改权限,高频实用场景有这几个:
- 脚本无法执行:提示
Permission denied→ 加执行权:chmod +x deploy.sh或chmod 755 deploy.sh - 网站文件被nginx/apache拒读:确认web服务用户(如www-data)有读权限 → 一般设为
644(文件)或755(目录),避免777 - 多人协作目录需组内可写:比如
/var/www/project→ 设权限775,并确保用户加入对应组(usermod -aG dev alice) - 敏感配置文件防泄露:如
.env或id_rsa→ 改为600(仅所有者可读写)
顺手查权限归属?别只看权限,还得看用户和组
权限生效依赖“你是谁”和“你在哪个组”。用 ls -l 同时看到三列关键信息:
-rw------- 1 alice dev 1200 Feb 5 09:30 .gitconfig
- alice 是所有者(user)
- dev 是所属组(group)
- 当前登录用户若为 alice,就走“所有者”那组权限;若不是 alice 但属于 dev 组,走“组”权限;否则走“others”
查自己所属组用 groups,查某用户所属组用 id username
基本上就这些。不复杂但容易忽略细节——盯住10字符、记牢421、结合身份看归属,权限问题基本稳了。