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