06. 文件权限
一、文件属性
Linux 系统是一个典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保证系统的安全性,Linux 系统对不同的访问用户访问同一个文件(包括目录文件)的权限做了不同的规定。在 Linux 中,我们可以使用 ll 或者 ls -l 命令来显示一个文件的属性以及文件所属的用户和组。

当我们使用 ll 或者 ls -l 指令查看文件时,文件信息开头的 10 个字符依次表示该文件的属性。如果没有权限,就会出现 - 号替代。从左到右这 10 个字符依次含义如下:

- 第
0位表示 类型,在 Linux 中的一个字符代表这个文件是目录、文件或链接文件等,其中:-代表 文件,d代表 目录,l代表 链接文档。 - 第
1-3位 确定属主(该文件的所有者)拥有该文件的权限。 - 第
4-6位 确定属组(所有者的同组用户)拥有该文件的权限。 - 第
7-9位 确定其它用户拥有该文件的权限。 r代表 可读,对于 文件 而言,可以 读取、查看该文件内容。对于 目录 而言,可以 使用 ls 查看目录内容。w代表 可写,对于 文件 而言,可以 修改该文件内容,但是不代表可以删除该文件(删除一个文件的前提是对该文件所在的目录有写权限,才可以删除该文件)。对于 目录 而言,可以 在目录内创建、删除和重命名文件。x代表 可执行,对于 文件 而言,可以 被系统执行。对于 目录 而言,可以 进入该目录。
二、修改文件的权限
我们可以使用 chmod 命令 对文件的权限进行修改。
chmod {[身份]}{权限操作符}{权限类型} 文件或目录
其中,身份 是指要修改权限的对象,u 表示 该文件的所有者(user),g 表示 所有者的同组用户(group),o 表示 其他用户(other),a(可以省略)表示 所有用户(all)。权限操作符 是指对权限如何操作,+ 表示 在原有权限的基础上新增该权限,- 表示 在原有的基础上移除该权限,= 表示 直接设置为该权限。权限类型可以是 r 表示 可读,w 表示 可写,x 表示 可执行。

如果我们要对文件的所有者、所有者所在的同组用户和其它用户分别赋予不同的权限,这需要使用 chmod 命令操作多次。此时,我们可以将三种身份各自的 读(0b100,即 4)、写(0b010,即 2)和 执行(0b001,即 1)权限看作三位二进制数字表示,然后将 权限值累加 就可以看作当前身份的权限。
chmod 权限累加值 文件或目录

三、修改文件的所有者
我们可以使用 chown 命令 修改文件的所有者。
sudo chown [-R] 修改后的文件所有者 文件或目录
其中,-R 选项可以递归地对目录中所有文件修改所有者。

四、修改文件的所属组
我们可以使用 chgrp 命令 修改文件的所属组。
chgrp [-R] 修改后的文件所属组 文件或目录
其中,-R 选项可以递归地对目录中所有文件修改所属组。

同样,我们可以使用 chown 命令 修改文件所有者的同时修改文件的所属组。
sudo chown 修改后的文件所有者:修改后的文件所属组 文件或目录

我们在修改文件所属组时,文件的所有者要属于修改后的那个所属组。

浙公网安备 33010602011771号