小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
Linux系统中的每个文件和目录都设定了针对不同用户的访问权限,用它来确定用户可以通过何种方式对文件和目录进行访问和操作,也就是确保只有授权的用户才能访问和操作文件和目录。
接下来将介绍如何使用chmod
命令更改文件和目录的访问权限。
Linux文件权限
在Linux中,有三种不同类型的用户可对文件或目录进行访问:
- 文件所有者
- 同一群组用户
- 其他用户
有三种文件权限类型:
- r:读取权限
- w:写入权限
- x:执行权限
我们可以为三种不同类别的用户分配不同的文件访问权限,指定允许哪些用户读取文件、写入文件或执行文件。
可以使用ls
命令查看文件权限:
ls -l test.sh
-rwxr-xr-x. 1 root root 2519 May 19 10:13 test.sh
我们可以看到类似-rwxr-xr-x
的信息,一共有10位:
-rwxr-xr-x
||||||||||
||||||||||
||||||||||
12345678910
- 第一个,
-
代表的是文件类型,可以是常规文件-
、目录d
、符号链接l
或其他类型的文件 - 往后三个,
rwx
代表的是所有者的权限 - 再往后三个,
r-x
代表的是同一群组的权限 - 最后三个,
r-x
代表的是其他用户的权限
注意:-
表示没有被授予相应的权限。
使用chmod修改文件目录权限
chmod
命令用于修改文件目录的访问权限。
语法格式
chmod [who] [+|-|=] [mode] 文件名
mode表示访问的模式状态,通常使用几个特定的符号来设置权限的状态。
设置用户的状态 | 运算符 | 权限 |
---|---|---|
u | + | r |
g | - | w |
o | = | x |
a |
权限状态可以分成3个部分。
-
设置用户的状态:
u
:表示所有者(owner)的权限g
:表示群组(group)的权限o
:表示其他用户(other)的权限a
:表示所有用户的权限
-
运算符:
+
:表示在现有权限的基础上增加权限-
:表示在现有权限的基础上移除权限=
:表示将权限设置为后面的值
-
权限:
r
:读取权限w
:写入权限x
:执行权限
例如,为test
文件添加所有者和同组用户的可执行权限:
chmod ug+x test
除此之外,chmod
命令还支持用数字来表示要修改的文件权限,可以使用一组3位数的数字来表示文件目录上的权限:
- 第1个数字表示所有者(owner)的权限,即
u
- 第2个数字表示群组(group)的权限,即
g
- 第3个数字表示其他用户(other)的权限,即
o
每一位数字都是以下权限状态的数字( 4、2、1、0)相加的总和:
- 4:读取权限
- 2:写入权限
- 1:执行权限
- 0:没有相应的权限
把以上的数字相加就可以得到一个在0-7之间的数字,而这组数字就是表示所有者、同群组和其他用户权限状态。
例如,要授予test
文件所有者的读取,写入和执行权限,授予同群组的读取和执行权限,而仅授予所有其他用户的读取权限,可以执行以下操作:
- 所有者:
rwx = 4 + 2 + 1 = 7
- 群组:
rx = 4 + 0 + 1 = 5
- 其他:
rx = 4 + 0 + 0 = 4
chmod -R 754 test
总结
chmod
命令可以更改文件和目录的访问权限,可以使用符号、数字两种模式。
原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~
最后,感谢女朋友在工作和生活中的包容、理解与支持 !