小白電腦課堂開課啦!遊戲團戰就死機,多半是廢了。大家好我是小白。在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許可權
如果去除特殊許可權用「-」代替「+」就可以了。
好了,今天就到這裡,我們明天見!
告別電腦小白就從小白電腦課堂開始!