对某一个操作系统中的文件进行相关的操作必须有对此文件进行操作的权限。
Fedora 6系统是一个典型的多用户系统,不同的用户处于不同的地位。为了保护系统的安全性,Fedora 6系统对不同用户访问同一文件的权限作了不同的规定。
对于一个Fedora 6系统中的文件来说,它的权限可以分为四种:读的权限、写的权限、执行的权限和无权限,在文本模式下分别用r、w、x和-表示。不同的用户具有不同的读、写和执行的权限。
每一个文件都有一个特定的所有者,也就是对文件具有所有权的用户。同时,由于在Fedora 6系统中,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。因此,Fedora 6系统按文件所有者、文件所有者同组用户和其他用户三类规定不同的文件访问权限。
Fedora 6文件系统安全模型是通过给系统中的文件赋予两个属性来起作用的。赋予每个文件的这两个属性称为所有者(Ownership)和访问权限(Access Rights)。Fedora 6下的每一个文件必须严格地属于一个用户和一个组。
在命令行中可以用命令“ls-l”来查看文件或目录的使用权限,如图3-1所示。
图3-1 使用命令查看权限
每个文件的目录条目都是以下面类似的一些符号开始:
-rw-r--r--
这些符号用来描述文件的访问权限类别。这些访问权限指导Fedora 6根据文件的用户和组所有权来处理所有访问文件的用户请求。总共有10种权限属性,因此一个权限列表总是10个字符的长度。它的格式遵循下列规则:
第1个字符表示文件的类型,与权限无关。
· d:表示该文件是一个目录。
· b:表示该文件是一个系统设备,使用块输入/输出与外界交互,通常为一个磁盘。
· c:表示该文件是一个系统设备,使用连续的字符输入/输出与外界交互,如串口和声音设备。
· .:表示该文件是一个普通文件,没有特殊属性。
· -:表示为文件。
第2~4个字符用来确定文件的用户(user)权限;第5~7个字符用来确定文件的组(group)权限;第8~10个字符用来确定文件的其他用户(other user,既不是文件所有者,也不是组成员的用户)的权限。其中,2、5、8位的字符是用来控制文件的读权限的,该位字符为r表示允许用户、组成员或其他人可从该文件中读取数据。短线“-”则表示不允许该成员读取数据。与此类似,3、6、9位的字符控制文件的写权限,该位若为w表示允许写,若为“-”表示不允许写。4、7、10位的字符用来控制文件的创建权限,该位若为x表示允许执行,若为“-”表示不允许执行。
在图形界面下要改变目录或是文件的权限,首先选择文件或目录,单击鼠标右键,选择“属性”选项,会弹出属性对话框,选择“权限”选项卡,如图3-2所示。在该对话框中,用户通过设置“访问”下拉菜单可以方便地设定文件权限。
在命令行中用户可以使用chmod命令来修改文件权限,通常可以用两种方式来表示权限类,数字表示法和文字表示法。下面分别对它们进行介绍。
图3-2 图形界面权限管理
所谓数字表示法是指将读取(r)、写入(w)、执行(x)和无权限分别以数字4、2、1、0来表示,然后再把授予的权限相加而成。示例如表3-1所示。
表3-1 权限数字示例
原始权限 |
转换为数字 |
数字表示法 |
rwxrwxr-x |
(421)(421)(401) |
775 |
rwxr-xr-x |
(421)(401)(401) |
755 |
rw-rw-r- |
(420)(420)(400) |
664 |
rw-r--r-- |
(420)(400)(400) |
644 |
数字表示法虽然简单方便,但是可读性比较差,必须经过换算才能知道权限设置。数字及其所对应的权限表如表3-2所示。
表3-2 数字及其对应权限
数 字 |
转换过的数字 |
对应权限 |
数 字 |
转换过的数字 |
对应权限 |
7 |
4+2+1 |
rwx |
3 |
0+2+1 |
-wx |
6 |
4+2+0 |
rw- |
2 |
0+2+0 |
-w- |
5 |
4+0+1 |
r-w |
1 |
0+0+1 |
--x |
4 |
4+0+0 |
r-- |
0 |
0+0+0 |
--- |
可以使用命令chmod来改变目录或文件的权限。命令格式如下:
chmod xxx文件名
其中xxx为数字,例如变更目录下install文件的权限,使拥有者和组成员都有读取和写入的权限,其他用户只能读取,则该权限应该为“rw-rw-r--”,对应的数字表示法为664,可输入命令如图3-3所示。
图3-3 数字法更改权限
文字表示法看起来比数字表示法复杂,但是因为是字符表示,所以可读性较强。文字表示法的命令如下:
chmod [who] [+ / - / =] [mode] 文件名
操作对象who表示4种不同的用户,可是下述字母中的任一个或者它们的组合:
· u:表示“用户(user)”,即文件或目录的所有者。
· g:表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
· o:表示“其他(others)用户”。
· a:表示“所有(all)用户”。它是系统默认值。
而权限mode仍为3种:
· r:可读。
· w:可写。
· x:可执行。
与数字表示法不同的是,文字表示法不仅仅可以重新设置权限,还可以在原来的权限上增加或减少权限,就是利用[+ / -/ =]来实现的。
· +:表示将权限由目前的设置增加。
· -:表示将权限由目前的设置减少。
· =:表示将权限重新设定。
例如目录下install文件的权限为-rw-r--r-要改为-rwxrw----。用户可以知道权限的变动如下:拥有者(u)的权限变为“rwx”,增加了执行(x)权限;组(g)的权限变为“rw-”,增加了写入(w)权限;其他人员(o)的权限变为“---”,减少了读取(r)权限。由此可以输入下列命令:
[root@localhost root]# chmod u+x,g+w,o-r install
或者输入:
[root@localhost root]# chmod u=rwx,g=rw install
目录权限的修改和文件差不多,但是如果要修改目录中的所有文件存取权限,则应该用“*”来表示。例如,要修改/home/Fedora 6的权限,命令如下:
[root@localhost root]# chmod 774 /home/Fedora 6/*
或者:
[root@localhost root]# chmod u=rwx,g=rwx,o=r /home/Fedora 6/*
如果文件中还有其他子目录,则可以使用“-R”参数。如下所示:
[root@localhost root]# chmod -R 774 /home/Fedora 6/*
或者:
[root@localhost root]# chmod -R u=rwx,g=rwx,o=r /home/Fedora 6/*
一般文件的创建者就是文件的所有者。若要改变文件的所有者,必须在root权限下才能进行修改。更改文件目录的所有权命令格式如下:
chown变更后的所有者或组文件
如图3-4所示,第二行中文件的所有者为root,使用chown为:
Chown new install
图3-4 改变文件或目录的所有者
在使用查看命令后,可以查看到文件的所有者已经成为new。