2

深入理解Solaris文件权限

 2 years ago
source link: https://os.51cto.com/article/254905.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
深入理解Solaris文件权限-51CTO.COM
深入理解Solaris文件权限
作者:HonestQiao 2011-04-11 16:48:12
本文从Solaris系统下的文件类型和文件权限两个方面进行了讲解,让读者可以全方位的进行了解。

Solaris10 系统中,权限很复杂,文件的准确定义是不包含有任何其它结构的字符流。也就是说,文件中字符与字符之间除了同属于一个文件之外,不存在任何其它的关系。

不管在什么操作系统中,文件和文件系统都是非常重要的概念。文件可以简单定义为有名字的一组相关信息的集合。在Solaris 10 系统中,文件的准确定义是不包含有任何其它结构的字符流。也就是说,文件中字符与字符之间除了同属于一个文件之外,不存在任何其它的关系。文件中字符关系是由使用文件的应用程序来建立和解释的。每一个文件都具有特定的属性。Solaris 10系统的文件属性比较复杂,主要包括文件类型和文件权限两个方面。

一 、Solaris 10文件类型

Solaris 10 下的文件可以分为5种不同的类型:普通文件、目录文件、链接文件、设备文件和管道文件。

1.普通文件

这是一类常见的文件,也是常使用的一类文件,其特点是不包含有文件系统的结构信息。通常所接触到的文件,包括图形文件、数据文件、文档文件、声音文件等都属于这种文件。这种类型的文件按其内部结构又可细分为文本文件和二进制文件。

2.目录文件

目录文件是用于存放文件名及其相关信息的文件,是内核组织文件系统的基本节点。目录文件可以包含下一级目录文件或普通。

3.链接文件

链接文件是一种特殊的文件,实际上是指向一个真实存在的文件的链接。这有点类似于Windows下的快捷方式。根据链接文件的不同,它又可以细分为硬链接文件和符号链接文件。

4.设备文件

设备文件是Solaris 10 中最特殊的文件。正是由于它的存在,使得Solaris 10 系统可以十分方便地访问外部设备。Solaris 10 系统为外部设备提供一种标准接口,将外部设备视为一种特殊的文件。用户可以像访问普通文件一样访问外部设备,使Solaris 10 系统可以很方便地适应不断发展的外部设备。通常Solaris 10 系统将设备文件放在/dev目录下,设备文件使用设备的主设备号和次设备号来指定某外部设备。根据访问数据方式的不同,设备文件又可以细分为块设备和字符设备文件。

5.管道文件

管道文件是一种很特殊的文件,主要用于不同进程间的信息传递。当两个进程间需要进行数据或信息传递时,可以通过管道文件。一个进程将需传递的数据或信息写入管道的一端,另一进程则从管道的另一端取得所需的数据或信息。通常管道是建立在调整缓存中。

二 、Solaris 10文件的权限

Solaris 10 系统是一个典型的多用户系统,不同的用户处于不同的地位。为了保护系统的安全性,Solaris 10 系统对不同用户访问同一文件的权限做了不同的规定。 对于一个Solaris 10 系统中的文件来说,它的权限可以分为三种:读的权限、写的权限和执行的权限,分别用r、w和x表示。不同的用户具有不同的读、写和执行的权限。   对于一个文件来说,它都有一个特定的所有者,也就是对文件具有所有权的用户。同时,由于在Solaris 10 系统中,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可以分为文件所有者的同组用户和其它用户。因此,Solaris 10 系统按文件所有者、文件所有者同组用户和其它用户三类规定不同的文件访问权限。

Solaris 10文件权限的概念

Solaris 10 文件系统安全模型是通过给系统中的文件赋予两个属性来起作用的,这两个赋予每个文件的属性称为所有者(ownership)和访问权限(access rights)。Solaris 10 下的每一个文件必须严格地属于一个用户和一个组。图1是在我机器上的/tmp目录下运行ls -l命令的情况。

深入理解Solaris 10 文件权限

图1 Solaris 10文件和文件夹的权限

从上面显示的内容可以注意到,每个文件的目录条目都是以下面类似的一些符号开始:

-rw-r--r--

这些符号用来描述文件的访问权限类别,也就是常说的文件权限。这些访问权限指导Solaris 10 根据文件的用户和组所有权来处理所有访问文件的用户请求。总共有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表示允许执行,若为“-”表示不允许执行。 读权限的情况如图2所示。

深入理解Solaris 10 文件权限

图2读权限的情况

写读权限的情况如图3所示

深入理解Solaris 10 文件权限

图 3 写读权限的情况

执行权限的情况如图4所示

深入理解Solaris 10 文件权限

图4 执行权限的情况

任何列在/etc/passwd文件中的用户都可以是一个文件的所有者,也称为该文件的用户。同样任何列在/etc/group文件中的组都可以是文件组的所有者,也简称为文件的组。下面来看两个例子,以便加深理解。首先来看一看图1中的第二行:

drwxr-xr-x 2 root root 117 4月 28日 07:14 hsperfdata_root

因为第1个位置的字符是d,所以由此知道hsperfdata_root是一个目录。第2至4位置上的属性是rwx,表示用户root拥有权限列表显示guo中所有的文件、创建新文件或者删除guo中现有的文件,或者将guo作为当前工作目录。第5至7个位置上的权限是rwx,表示root组的成员拥有和root一样的权限。第8至10位上的权限仅是r--,表示不是root的用户及不属于root组的成员只有对hsperfdata_root目录列表的权限。这些用户不能创建或者删除hsperfdata_root中的文件。

下面再来看一看图1中的***行:

-rw-r--r-- 1 root root 0 4月 28日 07:14 1111.txt

在该项中,第1个位置是短线“-”,表示该文件是一个普通文件,没有特殊属性。该文件对任何人都可读,只对user可写,user和admin的组成员可以执行该文件。

【编辑推荐】

责任编辑:冯宇 来源: ChinaUnix文档频道
zanpc.bd208a1.pngzanpchover.fdd60ba.png
weixin.23cd8b3.png 分享到微信
weibo.16d6b4f.png 分享到微博

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK