深入理解Solaris文件權(quán)限
Solaris10 系統(tǒng)中,權(quán)限很復(fù)雜,文件的準(zhǔn)確定義是不包含有任何其它結(jié)構(gòu)的字符流。也就是說,文件中字符與字符之間除了同屬于一個(gè)文件之外,不存在任何其它的關(guān)系。
不管在什么操作系統(tǒng)中,文件和文件系統(tǒng)都是非常重要的概念。文件可以簡單定義為有名字的一組相關(guān)信息的集合。在Solaris 10 系統(tǒng)中,文件的準(zhǔn)確定義是不包含有任何其它結(jié)構(gòu)的字符流。也就是說,文件中字符與字符之間除了同屬于一個(gè)文件之外,不存在任何其它的關(guān)系。文件中字符關(guān)系是由使用文件的應(yīng)用程序來建立和解釋的。每一個(gè)文件都具有特定的屬性。Solaris 10系統(tǒng)的文件屬性比較復(fù)雜,主要包括文件類型和文件權(quán)限兩個(gè)方面。
一 、Solaris 10文件類型
Solaris 10 下的文件可以分為5種不同的類型:普通文件、目錄文件、鏈接文件、設(shè)備文件和管道文件。
1.普通文件
這是一類常見的文件,也是常使用的一類文件,其特點(diǎn)是不包含有文件系統(tǒng)的結(jié)構(gòu)信息。通常所接觸到的文件,包括圖形文件、數(shù)據(jù)文件、文檔文件、聲音文件等都屬于這種文件。這種類型的文件按其內(nèi)部結(jié)構(gòu)又可細(xì)分為文本文件和二進(jìn)制文件。
2.目錄文件
目錄文件是用于存放文件名及其相關(guān)信息的文件,是內(nèi)核組織文件系統(tǒng)的基本節(jié)點(diǎn)。目錄文件可以包含下一級(jí)目錄文件或普通。
3.鏈接文件
鏈接文件是一種特殊的文件,實(shí)際上是指向一個(gè)真實(shí)存在的文件的鏈接。這有點(diǎn)類似于Windows下的快捷方式。根據(jù)鏈接文件的不同,它又可以細(xì)分為硬鏈接文件和符號(hào)鏈接文件。
4.設(shè)備文件
設(shè)備文件是Solaris 10 中最特殊的文件。正是由于它的存在,使得Solaris 10 系統(tǒng)可以十分方便地訪問外部設(shè)備。Solaris 10 系統(tǒng)為外部設(shè)備提供一種標(biāo)準(zhǔn)接口,將外部設(shè)備視為一種特殊的文件。用戶可以像訪問普通文件一樣訪問外部設(shè)備,使Solaris 10 系統(tǒng)可以很方便地適應(yīng)不斷發(fā)展的外部設(shè)備。通常Solaris 10 系統(tǒng)將設(shè)備文件放在/dev目錄下,設(shè)備文件使用設(shè)備的主設(shè)備號(hào)和次設(shè)備號(hào)來指定某外部設(shè)備。根據(jù)訪問數(shù)據(jù)方式的不同,設(shè)備文件又可以細(xì)分為塊設(shè)備和字符設(shè)備文件。
5.管道文件
管道文件是一種很特殊的文件,主要用于不同進(jìn)程間的信息傳遞。當(dāng)兩個(gè)進(jìn)程間需要進(jìn)行數(shù)據(jù)或信息傳遞時(shí),可以通過管道文件。一個(gè)進(jìn)程將需傳遞的數(shù)據(jù)或信息寫入管道的一端,另一進(jìn)程則從管道的另一端取得所需的數(shù)據(jù)或信息。通常管道是建立在調(diào)整緩存中。
#p#
二 、Solaris 10文件的權(quán)限
Solaris 10 系統(tǒng)是一個(gè)典型的多用戶系統(tǒng),不同的用戶處于不同的地位。為了保護(hù)系統(tǒng)的安全性,Solaris 10 系統(tǒng)對(duì)不同用戶訪問同一文件的權(quán)限做了不同的規(guī)定?!?duì)于一個(gè)Solaris 10 系統(tǒng)中的文件來說,它的權(quán)限可以分為三種:讀的權(quán)限、寫的權(quán)限和執(zhí)行的權(quán)限,分別用r、w和x表示。不同的用戶具有不同的讀、寫和執(zhí)行的權(quán)限。 對(duì)于一個(gè)文件來說,它都有一個(gè)特定的所有者,也就是對(duì)文件具有所有權(quán)的用戶。同時(shí),由于在Solaris 10 系統(tǒng)中,用戶是按組分類的,一個(gè)用戶屬于一個(gè)或多個(gè)組。文件所有者以外的用戶又可以分為文件所有者的同組用戶和其它用戶。因此,Solaris 10 系統(tǒng)按文件所有者、文件所有者同組用戶和其它用戶三類規(guī)定不同的文件訪問權(quán)限。
Solaris 10文件權(quán)限的概念
Solaris 10 文件系統(tǒng)安全模型是通過給系統(tǒng)中的文件賦予兩個(gè)屬性來起作用的,這兩個(gè)賦予每個(gè)文件的屬性稱為所有者(ownership)和訪問權(quán)限(access rights)。Solaris 10 下的每一個(gè)文件必須嚴(yán)格地屬于一個(gè)用戶和一個(gè)組。圖1是在我機(jī)器上的/tmp目錄下運(yùn)行l(wèi)s -l命令的情況。

圖1 Solaris 10文件和文件夾的權(quán)限
從上面顯示的內(nèi)容可以注意到,每個(gè)文件的目錄條目都是以下面類似的一些符號(hào)開始:
-rw-r--r--
這些符號(hào)用來描述文件的訪問權(quán)限類別,也就是常說的文件權(quán)限。這些訪問權(quán)限指導(dǎo)Solaris 10 根據(jù)文件的用戶和組所有權(quán)來處理所有訪問文件的用戶請(qǐng)求??偣灿?0種權(quán)限屬性,因此一個(gè)權(quán)限列表總是10個(gè)字符的長度。它的格式遵循下列規(guī)則:
第1個(gè)字符表示一種特殊的文件類型。其中字符可為d(表示該文件是一個(gè)目錄)、b(表示該文件是一個(gè)系統(tǒng)設(shè)備,使用塊輸入/輸出與外界交互,通常為一個(gè)磁盤)、c(表示該文件是一個(gè)系統(tǒng)設(shè)備,使用連續(xù)的字符輸入/輸出與外界交互,如串口和聲音設(shè)備),“.”表示該文件是一個(gè)普通文件,沒有特殊屬性。
2~4個(gè)字符用來確定文件的用戶(user)權(quán)限,5~7個(gè)字符用來確定文件的組(group)權(quán)限,8~10個(gè)字符用來確定文件的其它用戶(other user,既不是文件所有者,也不是組成員的用戶)的權(quán)限。其中,2、5、8個(gè)字符是用來控制文件的讀權(quán)限的,該位字符為r表示允許用戶、組成員或其它人可從該文件中讀取數(shù)據(jù)。短線“-”則表示不允許該成員讀取數(shù)據(jù)。與此類似,3、6、9位的字符控制文件的寫權(quán)限,該位若為w表示允許寫,若為“-”表示不允許寫。4、7、10位的字符用來控制文件的制造權(quán)限,該位若為x表示允許執(zhí)行,若為“-”表示不允許執(zhí)行。 讀權(quán)限的情況如圖2所示。

圖2讀權(quán)限的情況
寫讀權(quán)限的情況如圖3所示

圖 3 寫讀權(quán)限的情況
#p#
執(zhí)行權(quán)限的情況如圖4所示

圖4 執(zhí)行權(quán)限的情況
任何列在/etc/passwd文件中的用戶都可以是一個(gè)文件的所有者,也稱為該文件的用戶。同樣任何列在/etc/group文件中的組都可以是文件組的所有者,也簡稱為文件的組。下面來看兩個(gè)例子,以便加深理解。首先來看一看圖1中的第二行:
drwxr-xr-x 2 root root 117 4月 28日 07:14 hsperfdata_root
因?yàn)榈?個(gè)位置的字符是d,所以由此知道hsperfdata_root是一個(gè)目錄。第2至4位置上的屬性是rwx,表示用戶root擁有權(quán)限列表顯示guo中所有的文件、創(chuàng)建新文件或者刪除guo中現(xiàn)有的文件,或者將guo作為當(dāng)前工作目錄。第5至7個(gè)位置上的權(quán)限是rwx,表示root組的成員擁有和root一樣的權(quán)限。第8至10位上的權(quán)限僅是r--,表示不是root的用戶及不屬于root組的成員只有對(duì)hsperfdata_root目錄列表的權(quán)限。這些用戶不能創(chuàng)建或者刪除hsperfdata_root中的文件。
下面再來看一看圖1中的***行:
-rw-r--r-- 1 root root 0 4月 28日 07:14 1111.txt
在該項(xiàng)中,第1個(gè)位置是短線“-”,表示該文件是一個(gè)普通文件,沒有特殊屬性。該文件對(duì)任何人都可讀,只對(duì)user可寫,user和admin的組成員可以執(zhí)行該文件。
【編輯推薦】















 
 
 











 
 
 
 