购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.2 Linux中的文件管理

与Windows通过盘符管理各个分区不同,Linux把所有文件和设备都当做文件来管理,这些文件都在根目录下,同时Linux中的文件名区分大小写。本节主要介绍文件的属性和权限管理。

5.2.1 文件的类型

Linux系统是一种典型的多用户系统,不同的用户处在不同的地位,拥有不同的权限。为了保护系统的安全性,对于同一资源来说,不同的用户具有不同的权限,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。示例5-2用于认识Linux系统中的文件类型。

【示例5-2】

在示例5-2的输出代码中:

● 第1列表示文件的类型,文件类型如表5.1所示。

● 第2列表示文件权限,如文件权限是“rw-r--r--”表示文件所有者可读、可写,文件所归属的用户组可读,其他用户可读此文件。

● 第3列为硬链接个数。

● 第4列表示文件所有者,就是文件属于哪个用户。

● 第5列表示文件所属的组,当文件类型为块设备或字符设备时,此列表示的是硬件类型。

● 第6列表示文件大小,通过不同的参数可以显示为可读的格式,如k/M/G等。当文件类型为块设备或字符设备时,此列的两个参数表示硬件的主版本和次版本,以逗号分隔。

● 第7列表示文件修改时间。

● 第8列表示文件名或目录名。

表5.1 Linux文件类型

5.2.2 文件的属性与权限

为了系统的安全性,Linux对于文件赋予了3种属性:可读、可写和可执行。在Linux系统中,每个文件都有唯一的属主,同时Linux系统中的用户可以属于同一个组,通过权限位的控制定义了每个文件的属主,同组用户和其他用户对该文件具有不同的读、写和可执行权限。3种权限可以用r、w、x表示,这种表示方法称为字符模式。另一种为绝对模式,用4、2、1表示,绝对模式表示权限时直接将数据相加即可。例如,可读可写用字符模式表示,写作wr,而绝对模式则将数据相加用6表示。

● 读权限:对应标志位为“r”,表示具有读取文件或目录的权限,对应的使用者可以查看文件内容。

● 写权限:对应标志位为“w”,用户可以变更此文件,比如删除、移动等。写权限依赖于该文件父目录的权限设置。示例5-3说明了即使文件其他用户权限标志位为可写,其他用户仍然不能操作此文件。

【示例5-3】

● 可执行权限:对应标志位为“x”,一些可执行文件比如C程序必须有可执行权限才可以运行。对于目录而言,可执行权限表示其他用户可以进入此目录,若目录没有可执行权限,则其他用户不能进入此目录。

注意

文件拥有执行权限才可以运行,比如二进制文件和脚本文件。目录文件要有执行权限才可以进入。

在Linux系统中文件权限标志位由3部分组成,如“-rwxrw-r--”第1位表示普通文件,然后“rwx”表示文件属主具有可读可写可执行的权限,“rw-”表示与属主属于同一组的用户就有读写权限,“r--”表示其他用户对该文件只有读权限。“-rwxrwxrwx”为文件最大权限,对应绝对模式为777,表示任何用户都可以读写和执行此文件。

5.2.3 改变文件所有权

一个文件属于特定的所有者,如果更改文件的属主或属组可以使用chown和chgrp命令。chown命令可以将文件变更为新的属主或属组,只有root用户或拥有该文件的用户才可以更改文件的所有者。如果拥有文件但不是root用户,只可以将组更改为当前用户所在的组。chown常用参数说明如表5.2所示。

表5.2 chown常用参数说明

chown经常使用的参数为“R”参数,表示递归地更改目录文件的属主或属组。更改时可以使用用户名或用户名对应的UID,更改属组类似。操作方法如示例5-4所示。

【示例5-4】

Linux系统中chgrp命令用于改变指定文件或目录所属的用户组。使用方法与chown类似,此处不再赘述。chgrp命令的操作方法如示例5-5所示。

【示例5-5】

5.2.4 改变文件权限

chmod是用来改变文件或目录权限的命令,文件是以空格分开的要改变权限的文件列表,支持通配符,只有文件的所有者或root用户可以执行。执行此命令时需要权限表达式选项。

字符模式的权限表达式由3部分组成,第1部分为操作对象,第2部分为操作符(“+”表示增加权限,“-”表示取消权限,“=”表示赋予权限),第3部分由权限位“rwx”的组合组成;绝对模式则用权限数字之和来表示。

权限表达式中的操作对象:u表示对文件所有者进行操作,g表示文件所属的组,o表示其他用户,a表示所有。通过它们可以详细控制文件的权限位。hmod常用参数如表5.3所示,操作方法如示例5-6所示。

表5.3 chmod命令常用参数说明

【示例5-6】 29OmBmo2E3MXgKWI6P9o656eMFCvpobTQng4z2qE8bqTZn6OpWH2mcniOSjOuZbh

点击中间区域
呼出菜单
上一章
目录
下一章
×