梁霞 焦戰 王海峪
摘 要:完善的權限管理機制是保證Linux系統可靠運行的重要手段,在linux系統中,文件的權限系統由基本權限、特殊權限組成訪問控制列表組成。
關鍵詞:權限管理;基本權限;特殊權限
1 前言
Linux是應用廣泛的多用戶多任務操作系統,為了保證系統可靠運行,linux系統內置了完善的文件權限管理體系,該體系包括文件的基本權限、特殊權限和訪問控制列表三個部分。文件的基本權限是指文件擁有者、文件所屬組和其它用戶對文件或目錄的r(讀)、w(寫)、x(執行)權限;文件的特殊權限是為保障系統可靠運行,滿足用戶特殊需要而賦予文件或目錄的Suid、Sgid、Sticky權限,通常Suid、Sgid針對可執行文件或目錄設置,Sticky只針對目錄設置。
2 文件的特殊權限在Linux系統中的表示方式
特殊權限Suid、Sgid、Sticky在linux系統中有其特定的表現形式,針對具體的文件和目錄,系統采取以下規則表示特殊權限。
Suid權限是借用擁有者(u)權限組合中的可執行權限位,用s或S表示(文件有可執行權(x),該位為s,文件無執行權(x),該位為S);Sgid權限是借用文件所屬組(g)權限組合中的可執行權限位,表示方式與Suid相同;Sticky是借用其它用戶(O)權限組合中的可執行權限位,用t或T表示(文件有可執行權(x),該位為t,文件無執行權(x),該位為T)。與基本權限相似,除了用字符方式表示外,還可以使用八進制數表示,Suid、sgid、sticky分別對應八進制數4、2、1。這樣,文件基本權限和特殊權限構成四位八進制數,第一位八進制數代表特殊權限對應的數字和,后三位八制數代表基本權限對應的數字和。
3 文件的特殊權限作用和設置方法
linux引入特殊權限是為了提高文件系統的安全性,方便用戶間文件共享,通常,在可執行文件或目錄上設置特殊權限,滿足系統用戶的特殊需求。
3.1 Suid權限
當文件擁有者(u)的可執行權限位(x)被s取代時,就構成Suid權限。設置了Suid權限的可執行文件,在被執行時,將不以執行者身份執行,而是以文件擁有者的身份執行。
3.2 Sgid權限
當文件所屬組(g)的可執行權限位(x)被s所取代時,就構成Sgid權限,通常Sgid被設置在可執行文件和目錄上。
可執行文件設置Sgid,在執行該文件時,不以執行者身份執行,而是以文件所屬組的身份執行。
目錄設置Sgid,在該目錄下創建的文件或子目錄所屬的組,將自動被賦予目錄所屬的組。
3.3 Sticky權限
當其它用戶(o)的執行權限位(x)被t取代時,就構成特殊權限Sticky。當目錄設置了該權限,在該目錄下的文件或子目錄,只有文件或子目錄的所有者和root可以執行刪除操作,其它用戶即使對該文件或子目錄有寫和執行權限,也不能執行刪除操作。
綜上所述,在目錄上設置Sgid權限,可解決同組用戶間文件共享的問題,但不能解決同組成員可任意刪除目錄中組內其它成員文件問題,為此,我們通過在目錄上同時設置Sgid和Sticky權限,即可實現同組用戶共享文件,又可保證只有文件所有者和root才可以刪除文件,操作如下。
將共享文件放入/home/user2/share目錄中,文件的所屬組為user,為該目錄設置Sticky、Sgid權限。切換到user2用戶,建立文件,再切換到user1用戶,使用rm命令刪除user2用戶建立的文件。
#chmod 3775 /home/user2/share
$su user2
$touch /home/user2/share/ file2.user2
$su user1
$rm –-f /home/user2/share/ file2.user2
Rm:cannt remove `home/user2/share/ file2.user2`:operation ont permitted
結果顯示:user1用戶不能刪除user2用戶建立的文件,因為在share目錄上設置了sticky權限,只有這個文件的所有者和root才可能刪除目錄中的文件,實現了同組用戶可共享指定目錄中的文件,而每一個用戶又不能刪除同組的其它用戶的文件,實現了同一項目中不同項目成員之間的信息共享和信息安全的目標。
4 結束語
Linux系統中文件的特殊權限,是文件系統安全體系中的重要組成部分,在系統安全管理方面起到了重要作用,通過特殊權限設置和使用,可進一步優化系統的權限管理機制,保障系統安全可靠運行。
[參考文獻]
[1]劉海濤.Linux中文件權限管理的探討.微型計算機信息,2006,22卷,第三期.
[2]何明,何茜穎.Linux培訓教程.清華大學出版社.2010.01,ISBN:978-7-302-23823-2.