Linux文件权限的数字表示法如何理解?
TOPIC SOURCE
linux的基础命令
在linux系统中,每次使用ls -l命令查看文件详情时,那些神秘的数字代码总让人困惑。744、755、644——这些看似简单的三位数,实际上是linux权限系统的精妙体现。
权限数字的底层逻辑
linux文件权限采用三组二进制位表示法,分别对应文件所有者、所属组和其他用户。读权限(r)对应数值4,写权限(w)对应数值2,执行权限(x)对应数值1。这种设计源于Unix系统的早期开发理念:每个权限位都是2的幂次方,便于计算机进行位运算。
| 权限字符 | 二进制值 | 十进制值 |
| --- | 000 | 0 |
| --x | 001 | 1 |
| -w- | 010 | 2 |
| -wx | 011 | 3 |
| r-- | 100 | 4 |
| r-x | 101 | 5 |
| rw- | 110 | 6 |
| rwx | 111 | 7 |
实战中的权限配置
以常见的755权限为例:第一位数字7(4+2+1)表示所有者拥有读、写、执行权限;第二位数字5(4+0+1)表示组用户可读、不可写、可执行;第三位数字5同样赋予其他用户读和执行权限。这种配置常见于可执行程序,既保证了文件安全性,又确保了执行功能。
$ chmod 755 script.sh
$ ls -l script.sh
-rwxr-xr-x 1 user group 1024 Jan 27 10:30 script.sh
特殊权限位的数字延伸
除了基本的9个权限位,Linux还包含三个特殊权限位:setuid(4)、setgid(2)和sticky(1)。当这些权限被设置时,需要在三位数前额外添加一个数字。比如4755中的4表示setuid权限,这意味着即使普通用户执行该文件,也会以文件所有者的权限运行。
记得有次配置Web服务器时,将上传目录设置为1777,尾部的7赋予所有用户完整权限,而首位的1设置了sticky位,确保用户只能删除自己创建的文件——这个设计既方便协作又保障安全。
权限计算的实用技巧
想要快速计算权限数值?有个简单口诀:读是4,写是2,执行是1;需要什么权限就加起来。比如需要读写就是6(4+2),需要所有权限就是7(4+2+1)。这种设计让权限管理变得异常高效,一行命令就能完成复杂的权限设置。
理解了这套数字系统后,你会发现在终端里输入chmod 600 key.pem保护SSH密钥,或用chmod 644配置网页文件时,那种精准控制的快感令人着迷。

参与讨论
755和644用得最多,基本记住了👍
这个421的算法原来是这么来的,之前一直死记硬背
setuid那个4755的例子能不能再讲细点?普通用户执行时权限提升是临时的吗?
之前配了个目录777,结果被安全扫描喷了一顿,现在终于知道为啥要用755了
话说chmod数字到底是怎么作用到文件上的?内核层面咋处理的?
我刚学linux的时候还以为这些数字是随机的,hhh
Web目录设成755挺常见,但有时候执行不了,是不是还得看SELinux?
权限位还能这么组合,感觉比字母表示法更直观