文件权限的表示方式
在 Linux 或 Unix 文件系统中,文件权限是通过一组数字或字母组合来表示的。权限分为三种类型:读(Read)、写(Write)和执行(Execute)。每种类型的权限可以用一个数字或一个字母来表示。
数字表示法
使用三位数字来表示权限,每一位数字代表一组权限的总和:
- 第 1 位数字表示文件所有者的权限
- 第 2 位数字表示文件所属组的权限
- 第 3 位数字表示其他用户的权限
对于每一组权限,数字是由以下值相加得到的:
- 读权限(R):4
- 写权限(W):2
- 执行权限(X):1
例如 777,第一个 7 表示所有者的权限,第二个 7 表示用户组的权限,第三个 7 表示其他用户的权限。
- 7 表示可执行、读取、写入
- 5 表示可执行、读取,不可写入
字母表示法
字母表示法使用 9 个字符来表示权限,每个字符代表一种权限:
- 第 1 位到第 3 位表示文件所有者的权限
- 第 4 位到第 6 位表示文件所属组的权限
- 第 7 位到第 9 位表示其他用户的权限
对于每一组权限,字符由以下值表示:
- 读权限(R)
- 写权限(W)
- 执行权限(X)
- 如果没有相应的权限,则使用连字符
-
来表示
例如,-rwxr-xr--
表示:
- 文件所有者有读、写和执行权限(rwx)
- 文件所属组有读和执行权限(r-x)
- 其他用户只有读权限(r--)
前面在 /usr/local/bin
中出现的 lrwxr-xr-x
的含义是:
l
: 表示这是一个符号链接(symbolic link),即软链接。表示该文件是一个指向另一个文件的引用,而不是实际的数据文件。- 文件所有者可以读、写和执行此链接
- 属于同一组的用户、其他用户,都只能读和执行此链接
提示:在 Linux 中,可以使用 ls -l filename
命令查看文件的详细信息,包括权限信息。
chmod 命令
chmod 命令用于修改文件权限。语法如下:
chmod <permissions> <filename>
chmod 命令的八进制表示方式:
# | 权限 | rwx | 二进制 | 备注 |
0 | 无权限 | --- | 000 | |
1 | 只执行 | --x | 001 | |
2 | 只写 | -w- | 010 | |
3 | 写 + 执行 | -wx | 011 | 1 + 2 = 3 |
4 | 只读 | r-- | 100 | |
5 | 读 + 执行 | r-x | 101 | 1 + 4 = 5 |
6 | 读 + 写 | rw- | 110 | 2 + 4 = 6 |
7 | 读 + 写 + 执行 | rwx | 111 | 1 + 2 + 4 = 7 |
例如:
chmod 777 filename
->-rwxrwxrwx
,所有人都可读、可写、可执行chmod 755 filename
->-rwxr-xr-x
,所有者可读、可写、可执行,用户组和其他人可读、可执行