Linux chmod命令:修改文件权限
文件权限对于一个系统而言是非常重要的,系统的每个文件也都设定了针对不同用户的访问权限,当然我们也可以通过手动来修改文件的访问权限。
文件与目录权限的设置,包括修改文件或目录的权限和修改文件或目录的所属组两种。修改文件或目录的权限需要使用 chmod 命令来完成文件或目录权限的修改,而修改文件或目录的所属组则需要使用 chown 命令来完成。
本节先讲解如何使用 chmod 命令修改文件或目录的权限,chown 命令放到《Linux chown命令:修改文件所有者》一节中讲解。
chmod 命令用于修改文件或目录的权限,该命令的语法格式如下:
mode 表示访问的模式状态,符号表示法是指使用几个特定的符号来设置权限的状态,如表 1 所示。
权限状态可以分成 3 个部分。
第 1 部分,表 1 中的第 1 列,表示要设定某个用户的状态,其具体表示如下。
第 2 部分,表 1 中的第 2 列是运算符,其具体表示如下:
第 3 部分,表 1 中的第 3 列,表示权限,其具体表示如下:
【例 1 】使用 chmod 命令为 test 文件添加所有者和同组用户的可执行权限。
打开终端页面,输入如下命令:
除此之外,chmod 命令还支持用数字来表示要修改的文件权限。所谓用数字表示,指的是使用一组 3 位数的数字来表示文件或目录上的权限,其中:
每一位数字都是由以下表示资源权限状态的数字(即 4、2、1 和 0)相加而获得的总和:
如果想要对一个文件或目录所有的权限(read、write和execute)开放,就把每组文件或目录的权限都设定为 7(4+2+1)就可以了,即这组 3 位数的数字为 777。
如果只想对 owner 开放所有的权限,对同组用户开放读和执行权限,而对其他用户只开放读权限,那么所有者的权限状态u就将被设置为 7,同组用户的权限就将被设置为 6(4+2+0),而其他用户的权限就将被设定为 4(4+0+0),即这组 3 位数的数字设定为 764。
为了方便读者理解,可以将 3 位数的二进制数写成一个 1 位的八进制数。表 2 为八进制数与二进制数的换算以及每组的权限状态。
【例 2】使用数字表示法为 test 文件添加权限。
打开终端页面,输入如下命令:
声明:《Linux系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
文件与目录权限的设置,包括修改文件或目录的权限和修改文件或目录的所属组两种。修改文件或目录的权限需要使用 chmod 命令来完成文件或目录权限的修改,而修改文件或目录的所属组则需要使用 chown 命令来完成。
本节先讲解如何使用 chmod 命令修改文件或目录的权限,chown 命令放到《Linux chown命令:修改文件所有者》一节中讲解。
chmod 命令用于修改文件或目录的权限,该命令的语法格式如下:
[root@bogon ~]# chmod [-R] mode 文件或目录名
选项 -R(Recursive,递归)表示不仅要修改该目录的权限,而且还要递归的修改该目录中所有文件和子目录的权限。mode 表示访问的模式状态,符号表示法是指使用几个特定的符号来设置权限的状态,如表 1 所示。
mode | ||
---|---|---|
设置用户的状态 | 运算符 | 权 限 |
u | + | r |
g | - | w |
o | = | x |
a |
第 1 部分,表 1 中的第 1 列,表示要设定某个用户的状态,其具体表示如下。
- u:表示所有者(owner)的权限;
- g:表示群组(group)的权限;
- o:表示既不是 owner 也不与 owner 在同一个 group 的其他用户(other)的权限;
- a:表示以上 3 组,也就是所有用户的权限。
第 2 部分,表 1 中的第 2 列是运算符,其具体表示如下:
- +:表示在现有权限的基础上增加权限;
- -:表示在现有权限的基础上移除权限;
- =:表示将权限设置为后面的值。
第 3 部分,表 1 中的第 3 列,表示权限,其具体表示如下:
- r:表示 read(读)权限;
- w:表示 write(写)权限;
- x:表示 execute(执行)权限。
【例 1 】使用 chmod 命令为 test 文件添加所有者和同组用户的可执行权限。
打开终端页面,输入如下命令:
[root@bogon ~]# chmod ug+x test
Linux 系统执行完命令后是没有任何消息提示的,所以需要使用 ls 命令验证是否添加成功,命令如下:
[root@bogon ~]# ls -l test
-rwxrwxr--. 1 root root 1016 6月 28 00::37 test
除此之外,chmod 命令还支持用数字来表示要修改的文件权限。所谓用数字表示,指的是使用一组 3 位数的数字来表示文件或目录上的权限,其中:
- 第 1 个数字代表的是所有者(owner)的权限(u)。
- 第 2 个数字代表的是群组(group)的权限(g)。
- 第 3 个数字代表的是其他用户(other)的权限(o)。
每一位数字都是由以下表示资源权限状态的数字(即 4、2、1 和 0)相加而获得的总和:
- 4:表示具有读(read)权限。
- 2:表示具有写(write)权限。
- 1:表示具有执行(execute)权限。
- 0:表示没有相应的权限。
如果想要对一个文件或目录所有的权限(read、write和execute)开放,就把每组文件或目录的权限都设定为 7(4+2+1)就可以了,即这组 3 位数的数字为 777。
如果只想对 owner 开放所有的权限,对同组用户开放读和执行权限,而对其他用户只开放读权限,那么所有者的权限状态u就将被设置为 7,同组用户的权限就将被设置为 6(4+2+0),而其他用户的权限就将被设定为 4(4+0+0),即这组 3 位数的数字设定为 764。
为了方便读者理解,可以将 3 位数的二进制数写成一个 1 位的八进制数。表 2 为八进制数与二进制数的换算以及每组的权限状态。
八进制 | 每组权限 | 二进制 |
---|---|---|
7 | rwx | 111 (4+2+1) |
6 | rw- | 110 (4+2+0) |
6 | r-x | 101 (4+0+1) |
4 | r-- | 100 (4+0+0) |
3 | -wx | Oil (0+2+1) |
2 | -w- | 010 (0+2+0) |
1 | --x | 001 (0+0+1) |
0 | --- | 000 (0+0+0) |
【例 2】使用数字表示法为 test 文件添加权限。
打开终端页面,输入如下命令:
[root@bogon ~]# chmod -R 777 test
为 test 文件设置对读、写、执行全部开放,当 Linux 系统执行完命令后没有任何消息提示,所以需要使用 ls 命令验证是否添加成功,输入命令如下:
[root@bogon ~]# ls -l test
-rwxrwxrwx. 1 root root 1016 6月 28 00:37 test
声明:《Linux系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。