linux文件权限由ls -l输出的10位字符表示:第1位为文件类型,后9位分三组对应所有者、所属组、其他人的读(r=4)、写(w=2)、执行(x=1)权限;chmod用三位八进制数设置,如755、644;chown/chgrp用于修改归属。

Linux文件权限看一眼 ls -l 输出就能搞明白,关键是理解三组字符的含义和对应的操作主体——不是记命令,而是理清“谁对什么有啥权利”。
一眼看懂 ls -l 的九位权限字符
运行 ls -l filename,最左边一串类似 -rw-r--r-- 的字符就是权限标识:
- 第1位是文件类型:
-表示普通文件,d是目录,l是软链接 - 后面9位每3位一组,分别代表所有者(user)、所属组(group)、其他人(others)的权限
- 每组内顺序固定:r(读)、w(写)、x(执行)——有字母表示有该权限,
-表示无
例如 -rwxr-xr-- 表示:所有者可读写执行,组用户可读执行但不可写,其他人只能读。
chmod 数字法:3个8进制数快速算清权限
用数字改权限比字母更直观,每位对应一组权限,按 r=4、w=2、x=1 相加:
rwx = 4+2+1 = 7rw- = 4+2+0 = 6r-x = 4+0+1 = 5
所以 chmod 755 script.sh 就是:所有者满权限(7),组和其他人可读可执行(5),常用于可执行脚本。
而 chmod 644 config.txt 表示:所有者读写(6),组和其他人只读(4)——适合配置文件。
chown 和 chgrp:谁拥有这个文件,谁就说了算
权限再对,归属错了也白搭。常见组合操作:
-
chown user:group file—— 同时改所有者和所属组,如chown alice:devops deploy.sh -
chown :www-data file—— 只改组(冒号前空),适合网页文件归入 web 组 -
chgrp admins file—— 单独改组名,语义更清晰
注意:普通用户只能把文件转给自己的主组或已加入的附加组;改所有者需 root 权限。
实战高频场景速查
Web 服务静态文件:目录设 755(可进入可读),html/css/js 文件设 644(不可执行)
Shell 脚本:必须加 x 权限,常用 755 或 700(仅自己可用)
ssh 私钥:严格限制,chmod 600 ~/.ssh/id_rsa,否则 ssh 拒绝使用
网站上传目录(如 wordPress wp-content):确保 web 用户(如 www-data)在目录所属组中,并给组写权限,如 chown :www-data uploads/ && chmod 775 uploads/
基本上就这些。权限不是越开放越好,也不是越严格越安全,而是匹配真实访问需求。多看几次 ls -l,自然就熟了。