小白電腦課堂開課啦!遊戲團戰就死機, 多半是廢了。 大家好我是小白。 在Linux中你會發現, 有些檔即使沒有任何許可權, 但是其他使用者還是能夠寫入資料。 例如在rhel7中密碼保存在/ect/shadow這個檔中, 檔本身除了超級管理員外沒有其他任何許可權, 但其他用戶可以通過passwd來修改自己的密碼。 這是為什麼呢?今天小白就和同學們說一說, Linux系統中檔的特殊許可權。
一、Linux檔的特殊許可權是用於彌補一般許可權不能實現的功能, 是針對於檔設置的一種特殊的功能。
二、Linux檔的特殊許可權:
SUID:讓執行者臨時擁有屬主的許可權(僅對擁有執行許可權的二進位程式有效);
SGID:讓執行者臨時擁有屬組的許可權(對擁有執行許可權的二進位程式設置),
在該目錄中創建的檔自動繼承此目錄的使用者組(只可以對目錄設置);
SBIT(Sticky Bit):只可管理自己的資料而不能刪除他人檔(僅對目錄有效)。
三、SUID(SET UID)
讓執行者臨時擁有屬主的許可權(僅對擁有執行許可權的二進位程式有效)。
普通使用者用passwd修改自己的密碼, 實際上是對/ect/shadow檔的修改。 為什麼該檔沒有任何許可權(除超級管理員外)而其他使用者還能夠寫入資料呢?這就要歸功於SUID特殊許可權了。
如圖所示, 在所有者許可權的可執行許可權位元上有字母“s”就說明該可執行檔具有SUID特殊許可權。
四、SGID(SET GID)
讓執行者臨時擁有屬組的許可權(對擁有執行許可權的二進位程式設置),
在該目錄中創建的檔自動繼承此目錄的使用者組(只可以對目錄設置)。
在所屬組許可權的可執行許可權位元上有字母“s”就說明該可執行檔或目錄具有SGID特殊許可權。
對於檔來說, 執行者必須擁有執行該檔的執行許可權;
對目錄來說, 使用者在該目錄下的群組會變成該目錄的群主。
五、SBIT(Sticky Bit)
只可管理自己的資料而不能刪除他人檔(僅對目錄有效)。
在其他用戶許可權的可執行許可權位元上有字母“t”就說明該目錄具有SBIT特殊許可權。
在Linux中/tmp目錄就具有這樣的許可權。
我們可以用root使用者在該目錄下創建一個檔, 然後用其他用戶找到該檔, 嘗試刪除該檔, 結果很明顯是不能刪除的。 同學們可以自己試一試, 增強一下動手能力。
六、我們也可以用“chmod”命令來修改檔的特殊許可權。 (點這裡, chmod命令說明)。
修改特殊許可權的命令:
chmod u+s 檔案名 添加SUID許可權
chmod g+s 檔案名 添加SGID許可權
chmod o+t 目錄名 添加SBIT許可權
如果去除特殊許可權用“-”代替“+”就可以了。
告別電腦小白就從小白電腦課堂開始!