您当前的位置:首页 > 计算机 > 系统应用 > Linux

Linux文件权限详解

时间:02-10来源:作者:点击数:

我们知道,Linux 中所有的资源都被看作文件,包括物理设备和目录。在 Linux 系统上。可以为每一个文件或目录设定 3 种类型的权限,这 3 种类型的权限详细地规定了某个用户有权访问这个文件或目录,它们分别是:

  1. 这个文件或目录的所有者(owner)的权限。
  2. 与所有者用户在同一个群组的其他用户的权限。
  3. 既不是所有者也不与所有者在同一个群组的其他用户的权限。

与此同时,Linux 系统是将系统中的所有用户分成了 3 大类,分别是所有者、同组用户、非同组的其他用户。因此,可以为这 3 类用户分别设定所需的文件操作权限。

文件的3种权限

Linux 文件和目录的操作权限包括读(read)、写(write)和执行(execute)3 种控制。其中,文件是系统中用来存储普通的文本文件、数据库文件、可执行文件等的数据信息;目录主要用来记录文件名的列表。

Linux 操作系统在显示权限时,可以使用相应的字符来表示文件和目录的操作权限,如表 1 所示。

表 1 字符及功能描述
字 符 文 件 目 录
r read 权限,表示可以读取文件中的内容 read 权限,表示可以读取目录的结构列表,即可以查看目录中的文件和子目录
w write 权限,表示可以编辑、新增或者修改文件中的内容。 如果该用户没有此操作权限的话,则也没有删除文件的权 利;当用户对文件的上级目录拥有写权限时,可以删除 write 权限对于目录而言是最高权限。拥有 w 权限,表示可以对目录执行以下操作:
1) 在此目录中建立新的文件或子目录;
2) 删除已存在的文件和目录;
3) 对已存在的文件或目录做更名操作;
4) 移动此目录下的文件和目录的位置。
同时,拥有 w 权限,可以在目录下执行 touch、 rm、cp、mv 等命令操作
x execute 权限,表示该文件具有被系统执行的权限。在 Linux 系统中,文件能否被执行,通过看此文件是否具有 x 权限来决定的 目录不能直接运行,目录具有 x 权限,表示用户可以进入目录,同时拥有 x 权限的用户或群组可以使用 cd 命令

注意,对于文件来说,执行权限是最高权限。给用户或群组设定权限时,是否赋予执行权限需要慎重考虑,否则会对系统安装造成严重影响。对于目录来说,如果只赋予 r 权限,用户只能查看目录结构,根本无法进入目录,目录是无法使用的。拥有 x 权限,目录才能正常使用。

系统上的每一个文件都属于一个用户而且与一个群组相关。该群组用户大部分都是文件的创建者。

一般地,一个用户可以访问属于自己的文件或目录,也可以访问其他同组用户共享的文件,但是一般是不能访问非同组的其他用户的文件。不过 root 用户并不受这个限制,该用户可以不限制地访问 Linux 系统上的任何资源。

在每个 Linux 系统上有一个特殊的 root 用户。root 用户可以完全不受限制地访问任何用户的账号以及所有的文件、目录。计算机系统通常在文件和命令上都会添加相应的权限,以保证文件的安全性,但这些权限并不限制 root 用户,root 用户是在 Linux 系统中拥有最高权限的用户。

Linux 操作系统引入用户组(group)和用户组权限,对项目的开发和管理是非常有帮助的,因为可以将同一个项目的用户放在同一个用户组中,这样在该项目中那些都需要的资源就可以利用 group 权限来共享。对于其他用户和其他用户权限来说,有时候一个用户可能需鼓励系统中的所有用户访问它的某些资源。

查看文件权限

可以使用带有 -l 选项的 ls 命令来查看文件的权限。我们通过输入 ls 命令的显示结果,可以看到在第 1 列中有一组由 10 个字符构成的字符串,这个字符串包含了文件的类型(文件或目录)和该文件的存取权限。

【例 1】ls 命令查看文件或目录权限。打开终端页面,输入如下命令:

[root@bogon ~]# ls -l
total 120
-rw-------. 1 root root  3338 Jul 20 04:43 anaconda-ks.cfg
drwxr-xr-x. 4 root root  4096 Aug 24 02:03 demo
drwxr-xr-x. 2 root root  4096 Aug 20 22:47 Desktop
drwxr-xr-x. 2 root root  4096 Jul 27 06:58 Documents
drwxr-xr-x. 3 root root  4096 Aug 18 19:11 Downloads
......

ls -l 命令显示结果的第 1 列的第 1 个字符表示文件的类型,即 d 表示目录,- 表示普通文件,l 表示链接文件,b 或 c 表示设备。之后的 9 个字符代表文件或目录的权限,从第 2 个字符开始,每 3 个划分为一组,分别表示所有者对文件的权限(用 u 代表)、所有者所在的组中用户所具有的权限(用 g 表示)、其他用户对文件或目录所具有的权限(用 o 表示)。

注意,每一组的第 1 个字符一定是“r”,表示具有读权限,如果是“-”,表示没有读权限;第 2 个字符一定是“w”,表示具有写权限,如果是“-”,表示没有写权限;第 3 个字符一定是“x”,表示具有执行权限,如果是“-”,表示没有执行权限。例如:rwxrwxrwx 表示文档的所有者(user)、组(group)、其他账户(other)权限均为可读、可写、可执行;rwxr--r-- 表示文档所有者权限为读写执行,所属组权限为只读,其他账户权限为只读。

第 2 列为链接数量或子目录的个数,第 3 列为文档的所有者,第 4 列为文档的所属组,第 5 列为容量,第 6 列为最近文档被修改的月份,第 7 列为文档最近被修改的日期,第 8 列为文档最近被修改的时间,第 9 列为文件或目录名称。

修改文件权限

如表 2 所示,Linux 系统提供了一些命令,可以实现修改目标文件的某些权限。

表 2 修改文件权限
命令名称 功 能
chmod 修改文件或目录的权限
chown 修改文件或目录的所有者
chgrp 修改文件或目录的所属组

有关这些命令的具体用法,请看《Linux命令大全》的详细讲解。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
    无相关信息
栏目更新
栏目热门