一、文件权限介绍
在 Linux 系统中,所有文件和目录都有三种基本的权限:读取权限(r)、写入权限(w)、执行权限(x)。
针对不同用户,对应的文件权限也不同,用户分为三类:
- 文件属主:文件的创建者,有权限更改文件和目录的权限。
- 群组:文件的归属群组,群组成员对文件有不同的权限。
- 其他人:不属于文件属主或者群组的其他用户,对文件的权限最低。
文件权限是由一串数字来表示的,比如“644”或者“777”,其中每一位对应一个用户组的权限,第一位为文件属主的权限,第二位为对应群组的权限,第三位为其他用户的权限。
以下是数字和对应权限的关系表:
数字 | 权限说明 |
---|---|
0 | 没有权限 |
1 | 执行权限 |
2 | 写入权限 |
3 | 执行权限和写入权限 |
4 | 读取权限 |
5 | 读取权限和执行权限 |
6 | 读取权限和写入权限 |
7 | 读取权限、写入权限和执行权限 |
二、学会使用chmod命令
chmod 命令用来修改文件和目录的权限,语法如下:
chmod [选项] mode file
其中 mode 表示要修改成的权限模式,file 表示要修改的文件和目录。可以使用符号模式或者数字模式来指定 mode。
三、符号模式设置权限
以 “rwx” 为例,r 表示读取、w 表示写入、x 表示执行,- 表示没有权限。
修改文件或目录的权限,可以使用 “+” 或 “-” 符号,表示增加或减少对应的权限。
下面是一些常见的符号模式示例:
- u:文件属主
- g:对应群组
- o:其他人
- a:所有用户
可以使用这些符号组合修改单个或多个用户的权限。比如,将文件 owner 的读取和写入权限都改为可执行:
chmod u+rx file.txt
或者使用数字表示修改权限:
chmod 751 file.txt
其中“7” 表示文件属主有读取、写入和执行权限;“5” 表示组用户有读取和执行权限;“1” 表示其他用户仅能执行。
四、特殊权限
Linux 还有两种特殊的文件权限:“s” 和 “t”,分别表示设置用户 ID(SetUID) 和 Sticky Bit。
- SetUID:授权用户在执行该程序时以所有者身份来执行该程序。在文件类型 ls -l 的第三个字符位上出现 S 或者 s 来表示是否设置了 SetUID 权限。
- Sticky Bit:只有在该目录下创建的用户才有权删除自己创建的文件。在文件类型 ls -l 的第十个字符位上出现 T 或者 t 来表示目录是否设置 Sticky Bit。
使用chmod命令来设置 SetUID 和 Sticky Bit 权限,使用 “+s” 或 “-s” 分别代表设置或取消 SetUID 权限;使用 “+t” 或 “-t” 分别代表设置或取消 Sticky Bit 权限。
五、结语
文件权限是 Linux 系统中文件管理的基础之一。如果你是一名Linux运维工程师,那么必须掌握文件权限的相关知识以及chmod命令的使用,才能更好地管理和保护系统的文件。