linux文件权限的rwx与数字表示法本质相同,属主、属组、其他三组各对应r=4、w=2、x=1,如-rwxr-xr--即754;chmod支持符号法(如u+x)和数字法(如644);另有suid(4)、sgid(2)、sticky bit(1)三位特殊权限。

Linux文件权限的rwx和数字表示法,本质是同一套规则的两种写法,理解它们的关键在于搞清三组权限(属主、属组、其他)各自对应的读(r)、写(w)、执行(x)含义,以及每个字母如何映射为二进制位和十进制数。
权限位的结构与含义
一个典型的权限字符串如 -rwxr-xr--,共10位:
- 第1位表示文件类型(- 表示普通文件,d 表示目录,l 表示符号链接等)
- 第2–4位(rwx)是属主(user)权限
- 第5–7位(r-x)是属组(group)权限
- 第8–10位(r--)是其他用户(others)权限
其中 r=4(可读)、w=2(可写)、x=1(可执行),无对应权限则为0。三者相加即得每组的数字表示:rwx=4+2+1=7,r-x=4+0+1=5,r--=4+0+0=4 → 完整数字权限就是 754。
用chmod设置权限的两种方式
符号法(Symbolic mode)更直观,适合局部调整:
- chmod u+x file:给属主增加执行权限
- chmod go-w file:去除属组和其他用户的写权限
- chmod a=r file:所有用户(all)只保留读权限(等价于 444)
数字法(Octal mode)一步到位,适合精确设定:
- chmod 644 file:属主读写(6)、属组只读(4)、其他只读(4)→ 常见文本文件权限
- chmod 755 dir:属主全权(7)、属组和其他可进入+列出(5=4+1)→ 常见目录权限
- chmod 700 script.sh:仅属主可读写执行,彻底隔离 → 适合含敏感信息的脚本
特殊权限位:SUID、SGID、Sticky Bit
在三位八进制数前可加第4位,控制高级行为:
- SUID(4xxx):执行时以文件属主身份运行。例如 chmod 4755 /usr/bin/passwd,普通用户运行passwd时能临时获得root权限修改/etc/shadow
- SGID(2xxx):对文件作用类似SUID;对目录则新创建的文件自动继承该目录的属组(如共享协作目录常用 2775)
- Sticky Bit(1xxx):仅对目录有效,如 chmod 1777 /tmp,确保用户只能删除自己创建的文件,即使有写权限也不能删别人文件
实际排查与验证技巧
权限问题常表现为“Permission denied”,排查时注意三点:
- 用 ls -l 查看当前权限,确认是否匹配操作需求(如执行脚本需x,编辑文件需w)
- 检查路径中每一级父目录**都必须有x权限**(对目录而言,x=可进入)
- 注意umask影响:新建文件默认权限是666减umask,目录是777减umask。例如umask 002 → 文件默认664,目录默认775
不复杂但容易忽略。











