linux中chmod命令的八进制
linux中chmod命令的八进制详细介绍
在 Linux 中,chmod 命令的八进制模式是通过三位(或四位)八进制数字来设置文件或目录的权限,每个数字对应一类用户的权限组合。以下是详细说明:
一、八进制权限的基本结构
八进制模式由 3 个数字组成,格式为 chmod XXX 文件名,分别对应:
- 第 1 位数字:所有者(Owner,
u)的权限 - 第 2 位数字:所属组(Group,
g)的权限 - 第 3 位数字:其他用户(Others,
o)的权限
每个数字由 ** 读(r)、写(w)、执行(x)** 三种权限的组合计算而来,对应关系为:
r(读)= 4(二进制100)w(写)= 2(二进制010)x(执行)= 1(二进制001)0(无权限)= 0(二进制000)
将权限对应的数值相加,得到每个用户组的八进制数字。
二、常见权限组合示例
| 权限字符串(rwx) | 计算方式 | 八进制数字 |
|---|---|---|
---(无权限) |
0+0+0=0 | 0 |
--x(仅执行) |
0+0+1=1 | 1 |
-w-(仅写入) |
0+2+0=2 | 2 |
-wx(写入 + 执行) |
0+2+1=3 | 3 |
r--(仅读取) |
4+0+0=4 | 4 |
r-x(读取 + 执行) |
4+0+1=5 | 5 |
rw-(读取 + 写入) |
4+2+0=6 | 6 |
rwx(全部权限) |
4+2+1=7 | 7 |
三、使用示例
- 设置文件所有者可读可写可执行,组和其他用户可读可执行:
bash文件名- 所有者(
u):rwx(7) - 组(
g):r-x(5) - 其他用户(
o):r-x(5)
- 所有者(
- 设置目录所有者可读可写,组和其他用户仅可读:
bash目录名- 所有者(
u):rw-(6) - 组(
g):r--(4) - 其他用户(
o):r--(4)
- 所有者(
- 添加特殊权限(四位八进制模式):
若需设置 setuid(SUID)、setgid(SGID)、粘滞位(Sticky Bit),需使用四位八进制数字,格式为chmod XXXX 文件名,其中第一位代表特殊权限:SUID(对所有者生效)= 4SGID(对组生效)= 2粘滞位(对其他用户生效)= 1
例如,设置文件具有SUID且权限为rwxr-xr-x:
bash
文件名
四、总结
- 核心逻辑:每个八进制数字对应一类用户的权限(
r/w/x分别为 4/2/1,相加得到数字)。 - 三位模式:
chmod ABC 文件名,其中A(所有者)、B(组)、C(其他用户)分别为 0-7 的数字。 - 四位模式:用于设置特殊权限(如
SUID/SGID/粘滞位),第一位表示特殊权限,后三位同普通权限。
通过八进制模式,可快速、精确地设置文件或目录的权限,是脚本和自动化操作中的常用方法。