來源:51CTO.com
本文從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 下的每一個文件必須嚴格地屬于一個用戶和一個組。
從上面顯示的內容可以注意到,每個文件的目錄條目都是以下面類似的一些符號開始:
-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表示允許執行,若為“-”表示不允許執行。
任何列在/etc/passwd文件中的用戶都可以是一個文件的所有者,也稱為該文件的用戶。同樣任何列在/etc/group文件中的組都可以是文件組的所有者,也簡稱為文件的組。下面來看兩個例子,以便加深理解。
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中的文件。
下面再來看一看:
-rw-r--r-- 1 root root 0 4月 28日 07:14 1111.txt
在該項中,第1個位置是短線“-”,表示該文件是一個普通文件,沒有特殊屬性。該文件對任何人都可讀,只對user可寫,user和admin的組成員可以執行該文件。