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