Linux操作系统
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

5.1 文件系统权限及管理

操作系统中,与管理文件有关的软件和数据称为文件系统,它负责进行用户建立、删除、存取、修改、复制等文件操作工作。

UNIX/Linux的文件系统除具有一般文件系统的特点外,还具有以下特点:

(1)文件是无结构的字符流。

(2)文件可通过设置权限的办法加以保护。

(3)外部设备都被看成是文件,在系统内与普通文件统一管理。

UNIX/Linux用文件存取控制表来解决存取权限的控制问题。存取控制表以文件为单位,把用户按某种关系划分为若干类,同时规定每类用户的存取权限。每个文件都有一张存取控制表,该表存放在文件说明中,也就是i节点的文件权限项中。

5.1.1 两种用户

在UNIX/Linux系统中用户被分为两类,一类是超级用户(Supper User)或根用户root,另一类为普通用户或称为一般用户。超级用户是系统的管理者,具有至高无上的权力,可以做一切事情,这样的用户在系统中只有一个,名字为root。除了root以外的所有其他用户均为普通用户。

普通用户,可按用户用途和功能分成不同的组,具有不同的权限,以便履行职能。普通用户只能在root给它们分配的权限内进行工作,不得越权行事。

5.1.2 三种权限

UNIX/Linux系统中,普通权限共有以下三种。

(1)读权限(r):指用户对文件或目录具有查看权力。若用户对某文件或目录不具有读权限,则不能查看其内容。

(2)写权限(w):指用户对文件或目录的写权力。若用户对某文件没有写权限,则不能修改它;若用户对某目录没有写权限,则不能在该目录内创建文件或子目录。

(3)执行权限(x):指用户对文件的执行权力或对目录的进入权力。若用户对某文件没有执行权限,则不能执行它;若用户对某目录没有执行权限,则不能进入它。

5.1.3 三类人

UNIX/Linux系统对文件操作的三种权限只对三类人分配,它们是用户主(user:u)、同组人(group:g)和其他人(other:o)。用户主是文件的拥有者;同组人是与用户主同组的用户;其他人是指除用户主和同组人以外的用户。

5.1.4 权限控制

1.权限的符号表示

设命令ls -l -d /dev/sda /dev/tty /boot /bin/bash的输出中有以下内容:

                -rwxr-xr-x   1  root  root    11212011-08-03 18:24/bin/bash
                drwxr-xr-x    5  root  root    10242011-08-03 15:28/boot
                brw-r-----     1  root  disk     8,02011-08-03 13:46/dev/sda
                crw-rw-rw-  1  root  tty      5,02011-08-03 13:47/dev/tty
                lrw-rw-rw-   1  root  root      32011-08-03       /dev/cdrom->scd0

输出的第一列为文件的类型和权限,其中的第一个字符为文件类型,“b”表示文件/dev/sda为块设备文件;“c”表示文件/dev/tty为字符设备文件;“d”表示/boot为目录文件;“l”表示/dev/cdrom是一个指向/dev/scd0的符号链接;而“-”表示/bin/bash是一个普通文件。

第一列中,除去第一个字符外为文件的权限描述。目录文件/boot的权限为rwxr-xr-x。将此权限字符串从左至右每三个分为一组,分别代表用户主、同组人和其他人的权限,如下所述。

rwx:用户主的权限,可读、可写、可执行。

r-x:同组人的权限,可读、可执行,但不可写。

r-x:其他人的权限,可读、可执行,但不可写。

就某个文件而言,它对某类用户的权限分配有以下三种。

(1)读权限。若用户对文件或目录有读权限,则对应读权限的位置为r,否则为-。

(2)写权限。若用户对文件或目录有写权限,则对应写权限的位置为w,否则为-。

(3)执行权限。若用户对文件有执行权限或对目录有进入权限,则对应执行权限的位置为x,否则为-。

对于某个文件来说,它的权限按用户主、同组人和其他人从左到右的顺序排列。例如,若用户主的权限为rwx,同组人的权限为r-x,其他人的权限为---,则它的权限为rwxr-x---。

2.权限的数字表示

文件权限的另一种表示方式为数字表示。在数字表示下,某类用户对文件或目录的访问权限可用一个三位二进制数来表示。在使用数字表示时,若具有某个权限,则对应位为1,否则为0,这样某类用户的权限就可表示为三位二进制数,其值为不大于7的整数,因此可作为八进制数。例如,目录/dev的权限为rwxr-xr-x,它的用户主、同组人和其他人的权限分别为rwx、r-x和r-x,表示为二进制就是111、101和101,分别转换为八进制数则为7、5和5。此时可以说/dev的权限为755。此文件的权限表示如表5-1所示。

表5-1 某文件的权限表示

5.1.5 默认权限与umask

在UNIX/Linux系统中,当用户创建文件或目录时,将为它们设置为默认权限。文件或目录的默认权限由文件权限掩码umask来控制。默认情况下,umask的值为022,新建文件和目录的默认权限为:

文件——-rw-r--r--或644。

目录——drwxr-xr-x或755。