为了系统安全,Linux通过两个方面来控制用户对文件的访问:所有权和访问权限,我们先来看下所有权的概念。

    Linux是一个多用户操作系统,可以被许多用户同时访问。再加上Linux经常被用作服务器,对外提供服务。如果没有安全措施的话,恶意用户就有可能会破坏系统里的关键数据。

    为了系统安全,Linux通过两个方面来控制用户对文件的访问:所有权和访问权限,我们先来看下所有权的概念。

Linux系统的文件所有权

    Linux系统将可以访问文件或目录的用户分成了三类:

1. 文件所属用户

    文件所属用户又被称为文件所有者。默认情况下,创建文件的用户就是文件的所有者。

2. 文件所属用户组

    Linux中,一个用户组可以包含多个用户,你可以让组中的所有用户对某个文件都具有相同的访问权限。

    假设你有一个文件,许多人都需要访问它,那么你只需将这些用户添加到相同的组,然后将文件所属组也设置到这个组,那么,这些用户就都可以访问该文件了。

3. 其他用户

    既不是文件所有者,也不是文件所属用户组的所有其他用户,都被分配了一个相同的文件访问权限。

    Linux系统针对这三类用户可以分别设置不同的访问权限,我们下面来看下文件访问权限的概念。

Linux系统的文件访问权限

    Linux系统可以为文件所属用户,文件所属用户组,和其他用户分别设置以下3种访问权限:

  • 读权限:对于文件,读权限可以让用户打开和读取文件内容。对于目录,读权限可以让你显示目录中包含的文件列表。
  • 写权限:对于文件,写权限可以修改文件的内容。对于目录,写权限可以在目录中创建,删除,和重命名文件。如果你对某个文件具有写权限,但是对该文件所在的目录没有写权限的话,那么你只可以修改该文件的内容,却不能移动、删除或重命名该文件。
  • 执行权限:在Windows系统中,以".exe"为扩展名的程序,直接就可以运行。但是在Linux系统中,只有给程序设置了执行权限,该程序才能被执行,如果某个程序文件没有被设置执行权限,那么你就只能读取和修改它(如果有读和写权限的话),但是却无法执行它。

    上面提到过的文件所有权中的三类用户,都可以被分别设置这三种访问权限,如下图所示:

    我们可以在命令行中使用"ls -l"命令来查看文件的访问权限信息:

ls -l

    上图中的"-rw-rw-r--"表明了文件的类型,以及不同所有权用户分别拥有的访问权限。

    "-rw-rw-r--"开头的'-'表示该文件是一个普通的常规文件:

    如果是目录的话,这个位置就会显示字母'd':

    后面的rw-表示文件访问权限,这些r、w等表示的具体权限如下:

  • r  = 读权限
  • w = 写权限
  • x  = 执行权限
  • -  = 没有对应的权限

    因此,"-rw-rw-r--"中的第一个"rw-"就表示文件的所有者只有读和写权限,没有执行权限('-'所在位是执行权限位,所以这里的'-'表示没有执行权限)。

    "-rw-rw-r--"中的第二个"rw-"表示文件所属用户组也只有读和写权限,没有执行权限。最后一个"r--"表示其他用户只有读权限,而没有写权限和执行权限。

使用'chmod'命令修改文件或目录的访问权限

    在Linux中,我们可以使用chmod命令,来修改或设置不同所有权用户的文件访问权限。chmod的命令格式如下:

chmod permissions filename

    使用该命令设置权限,有两种使用方式:

  1. 使用数字方式
  2. 使用符号方式

使用数字方式

    在这种方式下,文件权限不用字符来表示,而是用三位的八进制数来表示。

    下表显示了八进制数和权限的对应关系:

 八进制数   表示的权限   相应的权限符号 
 0  无权限   ---
 1  执行权限  --x
 2  写权限  -w-
 3  执行 + 写权限   -wx
 4  读权限  r--
 5  读 + 执行权限  r-x
 6  读 + 写权限  rw-
 7  读 + 写 + 执行权限   rwx

 

    下面是这种数字方式的使用例子:

    上面我们将sample文件的访问权限修改为764,这几个数字对应的权限如下图所示:

    从上图中可以看到,764表示文件所有者具有读,写和执行权限,文件所属组只有读和写权限,而其他用户则只有读权限。

使用符号方式

    前面的数字方式,适合一次设置所有的权限。如果你想针对某个所有权用户进行单独设置的话,就可以使用符号方式,符号方式下可以使用加、减等数学符号来增加或移除权限:

 数学符号   描述 
 +  为文件或目录添加一个权限。
 -  移除权限
 =  直接设置新的权限,以覆盖掉旧的权限 

 

    这里设置权限可以针对某个所有权用户来执行,所有权用户也可以用相应的符号来表示:

 所有权符号   对应的所有权用户 
 u  文件所有者
 g  文件所属组
 o  其他用户
 a  所有用户

 

    使用符号方式设置权限时,我们不再使用类似755这样的数字,而是使用rwx之类的权限符号,例如下面这个例子:

修改文件所有者和文件所属组

    要改变文件或目录的所有者,可以使用chown命令:

chown user

    如果既想改变文件所有者,又想改变文件所属用户组,可以使用以下命令:

chown user:group filename

    例如下面这个例子:

    如果你只想修改所属的用户组,可以使用chgrp命令:

chgrp group_name filename

    例如下面这个例子:

 

上下篇

下一篇: Linux系统中的输入和输出重定向

上一篇: Linux中查看文档,格式化输出,软件管理相关的命令

相关文章

Linux中的pkill命令:终止进程,按终端号踢出用户

在Linux命令行中使用正则表达式

Linux系统中的日志文件(常见)及其功能

Linux中的w和who命令:查看登陆用户信息

Linux中的LV逻辑卷(创建、查看、调整大小及删除)详解

Linux常用命令:ls显示文件列表,cat查看文件,rm删除文件