Linux文件权限
#📚/操作系统/Linux服务器/Linux文件权限
目录权限:
R
(Read):允许读取目录内容,即列出目录中的文件和子目录。W
(Write):允许在目录中创建、删除文件或子目录。X
(Execute):允许进入目录,即可以通过cd命令切换到该目录。
对于每个权限,如果有相应的权限则用大写字母表示,如果没有则用 -
表示。
文件权限:
R
(Read):允许读取文件内容。W
(Write):允许修改文件内容。X
(Execute):对于可执行文件,允许执行。
同样,对于每个权限,如果有相应的权限则用大写字母表示,如果没有则用 -
表示。
所有者(Owner)权限表示:
u
:文件的所有者。g
:文件的所属组。o
:其他人,即除了所有者和所属组之外的用户。a
:所有人,包括所有者、所属组和其他人。
这些权限可以组合在一起,例如:
u+rwx
表示文件所有者具有读、写、执行权限。go-rw
表示所属组和其他人没有读和写的权限。a+x
表示所有人有执行权限。
总的来说,这些权限设置允许你对文件和目录进行细粒度的控制,确保只有授权的用户能够进行相应的操作。
文字设定法解析
在Linux系统中,文字设定法是一种用字母来表示文件权限的方式,包含三种符号:+、=和-,它们的作用如下:
-
+ 符号: 表示赋予权限,即在原权限的基础上增加一些权限。例如,执行
chmod u+x filename
可以给文件的所有者增加执行权限。 -
= 符号: 表示覆盖权限,即用指定的权限替换原权限。例如,执行
chmod u=r filename
可以给文件的所有者只保留读权限。 -
- 符号: 表示减去权限,即在原权限的基础上去掉一些权限。例如,执行
chmod u-w filename
可以给文件的所有者去掉写权限。
数字设定法
数字设定法用于通过数字表示权限。每个权限对应一个数值,然后将这些数值相加来设置权限。这通常用于简化权限设置。
0
表示没有权限。1
表示执行权限(X,可执行文件)。2
表示修改权限(W)。4
表示读文件权限(R)。
在权限设置中,将这些数字进行组合,以表示不同用户的权限。通常使用三个数字,分别表示用户(u)、所属组(g)、和其他人(o)的权限。
chmod n1 n2 n3 文件名称
其中,n1
表示文件所有者的权限,n2
表示文件所属组的权限,n3
表示其他人的权限。这三个数字分别是上述权限对应的数值之和。
例如,如果想让文件所有者有读、写和执行权限(4+2+1=7),所属组有读和执行权限(4+1=5),其他人没有权限(0),可以使用:
chmod 750 文件名称
这样就设置了相应的文件权限。
特殊权限
特殊权限
特殊权限是 Linux 系统中的一种高级权限,它可以让普通用户在执行某些程序时,以程序的所有者或所属组的身份来执行,从而获得更高的权限。特殊权限有三种,分别是 SUID、SGID 和 SBIT。下面我会分别介绍它们的作用和设置方法。
[[SUID]]
SUID (Set User ID)
-
作用: 让用户在执行某程序时暂时获得程序所有者的权限。
-
设置方法:
- 数字表示:
chmod 4xxx 文件名
- 符号表示:
chmod u+s 文件名
- 数字表示:
[[SGID(Set Group ID)]]
-
作用:
- 对二进制程序有效:执行者暂时获得程序所属组的权限。
- 对目录有效:新文件或目录的所属组为该目录的所属组。
-
设置方法:
- 数字表示:
chmod 2xxx 文件名
(文件),chmod 2xxx 目录名
(目录) - 符号表示:
chmod g+s 文件名
(文件),chmod g+s 目录名
(目录)
- 数字表示:
[[SBIT (Sticky Bit)]]
-
作用: 防止非文件所有者删除目录下的文件。
-
设置方法:
- 数字表示:
chmod 1xxx 目录名
- 符号表示:
chmod o+t 目录名
- 数字表示:
chgrp 用户名文件名
chgrp
命令,它用于将文件或目录的所属组更改为指定的用户名。以下是对该命令及其选项的解释:
chgrp
命令
chgrp 用户名 文件名
-
作用: 将文件或目录的所属组更改为指定的用户名。
-
示例: 如果要将文件
test.txt
的所属组更改为linuxcool
,可以执行chgrp linuxcool test.txt
。
选项
-
-c 或 --changes: 只显示更改了所属组的文件或目录的信息。
-
-f 或 --quiet 或 --silent: 不显示错误信息。
-
-h 或 --no-dereference: 只修改符号链接本身的所属组,而不修改它所指向的文件或目录的所属组。
-
-R 或 --recursive: 递归地修改指定目录及其所有子目录和文件的所属组。
-
-v 或 --verbose: 显示详细的执行过程信息。
-
–help: 显示帮助信息。
-
–version: 显示版本信息。
-
–reference=<参考文件或目录>: 使用参考文件或目录的所属组作为修改的依据。