在企業(yè)內(nèi)網(wǎng)的開發(fā)環(huán)境方面,文件服務(wù)器是一個(gè)非常重要的環(huán)節(jié)。其中,Samba服務(wù)器由于其權(quán)限控制的高度靈活性,最初學(xué)習(xí)時(shí)確實(shí)會(huì)讓大家感到很迷惑,但我們可以先搭建一些簡(jiǎn)單的案例來掌握其語法。本節(jié)主要是介紹Linux下的高級(jí)權(quán)限suid、sgid、sticky三種權(quán)限的特點(diǎn)。
很多人都很奇怪,為什么我們需要學(xué)習(xí)這三種權(quán)限呢?因?yàn)樵趯?shí)際工作中我們發(fā)現(xiàn),如果不了解這些特殊權(quán)限會(huì)讓我們對(duì)Linux權(quán)限的理解(尤其是加上Samba權(quán)限后)尤為困難,所以我們必須要學(xué)習(xí)并了解它們。下面試圖用淺顯的講解,讓大家能充分理解這三種權(quán)限的作用。理解了它們,再理解Samba的權(quán)限控制就更容易了。
注意 Samba的權(quán)限由兩方面構(gòu)成:
一是目錄本身的權(quán)限;二是Samba的配置權(quán)限。最終權(quán)限的定義是兩者的最小交集。
我們接著來理解這3種權(quán)限:
1)一個(gè)文件都有一個(gè)所有者,表示該文件是誰創(chuàng)建的。
2)如果同時(shí)該文件還有一個(gè)組編號(hào),則表示該文件所屬的組一般為文件所有者所屬的組。
3)如果是一個(gè)可執(zhí)行文件,那么在執(zhí)行時(shí),一般該文件只擁有調(diào)用該文件的用戶所具有的權(quán)限。
權(quán)限標(biāo)志通過以下3個(gè)“位”來定義。
setuid:設(shè)置使文件在執(zhí)行階段具有文件所有者的權(quán)限。比如/usr/bin/passwd,如果是一般用戶執(zhí)行該文件,則在執(zhí)行過程中,用戶通過該文件可以獲得root權(quán)限,從而可以更改用戶的密碼。
setgid:該權(quán)限只對(duì)目錄有效。目錄被設(shè)置該權(quán)限后,任何用戶在此目錄下創(chuàng)建的文件都具有和該目錄所屬的組相同的組。
sticky:該位可以理解為防刪除位。一個(gè)文件是否可以被某用戶刪除,主要取決于該文件所屬的組是否對(duì)該用戶具有寫權(quán)限。如果沒有寫權(quán)限,則這個(gè)目錄下的所有文件都不能被刪除,同時(shí)也不能添加新的文件。如果希望用戶能夠添加文件但同時(shí)又不刪除文件,則可以對(duì)文件使用sticky bit位。設(shè)置該位后,就算用戶對(duì)目錄具有寫權(quán)限也不能刪除該文件。
下面介紹一下三種權(quán)限的特點(diǎn)。
(1)sticky的特點(diǎn)
sticky只能應(yīng)用在目錄上,并且是應(yīng)用在其他人的目錄上。
只有root和文件的擁有者才能刪除該文件。
小寫s表示能執(zhí)行,大寫S表示不能執(zhí)行。
它的其他特點(diǎn)大家可以參考/tmp目錄。
(2)setuid的特點(diǎn)
setuid只能應(yīng)用在二進(jìn)制文件中。
當(dāng)一個(gè)文件應(yīng)用了setuid,那么任何人在執(zhí)行該命令的時(shí)候就能臨時(shí)擁有該文件擁有人的權(quán)限。
setuid只能應(yīng)用在文件的擁有者上。
小寫s表示能執(zhí)行,大寫表示S不能執(zhí)行。
它的其他特點(diǎn)大家可以參考/usr/bin/passwd目錄。