Linux文件权限是10位字符串,第1位表类型,2–4、5–7、8–10位分别表示属主、属组、其他用户的rwx权限;数字权限按r=4、w=2、x=1换算;另有SUID、SGID和粘滞位等特殊权限。

Linux文件权限不是一串乱码,而是一套有规律的标记系统。看懂它,关键在理解三组角色、三类操作和一个特殊位。
权限字符串的结构拆解
执行 ls -l 命令时,最左边一列如 -rwxr-xr-- 就是权限字符串,共10个字符:
- 第1位:文件类型(-普通文件、d目录、l软链接等)
- 第2–4位:属主(user)权限 —— 比如 rwx 表示可读、可写、可执行
- 第5–7位:属组(group)权限 —— 比如 r-x 表示可读、不可写、可执行
- 第8–10位:其他用户(others)权限 —— 比如 r-- 表示只可读
读、写、执行到底意味着什么
权限含义取决于文件类型,不能死记硬背:
-
对普通文件:
● r = 能查看内容(cat、less)
● w = 能修改内容(echo、vim)
● x = 能当作程序运行(./script.sh) -
对目录:
● r = 能列出目录内文件(ls)
● w = 能创建/删除/重命名该目录下的文件(需配合x)
● x = 能进入该目录(cd),也是访问其下文件的前提
数字权限(八进制)怎么算出来的
每组权限(rwx)对应一个0–7的数字,本质是二进制加权和:
- r = 4,w = 2,x = 1;不具有某权限就为0
- rwx → 4+2+1 = 7;r-x → 4+0+1 = 5;r-- → 4+0+0 = 4
- 所以 rwxr-xr-- 对应数字权限就是 754
别忽略那个“隐藏位”:粘滞位、SUID、SGID
权限字符串开头若出现 s 或 t(如 -rwsr-xr-t),说明启用了特殊权限:
- 属主位出现 s(如 rws)→ SUID:执行时临时获得文件属主身份(常用于 passwd)
- 属组位出现 s(如 r-s)→ SGID:执行时临时获得文件属组身份;对目录则让新文件自动继承父目录属组
- 其他位出现 t(如 r-t)→ 粘滞位(sticky bit):仅对目录有效,如 /tmp,保证用户只能删自己创建的文件
基本上就这些。权限不是背出来的,是用几次 ls -l + chmod 就自然记住的逻辑。










