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