自己覺得BLOG的文章,應該要精簡一點,不用太冗長,畢竟不是在寫PAPER或是企劃書,所以就把這個主題拆成兩部份來寫。
接續前一篇文章,已知如何查看檔案的基本屬性和SUID了。接著繼續介紹SGID和SBIT。
◎ SGID (Set Group ID)
Set GID的用意:
1. SUID只能夠針對Binary File;SGID除了針對檔案之外,還能夠針對目錄。
2. 使用者在目錄下的有效群組,即為該目錄群組。這句話的意思是:即該群組的使用者在該目錄下所建立的檔案,即該目錄群組。
第二點講的文謅謅的,直接舉例會比較容易理解。
mkdir -p /TEMP/; ls -ld /TEMP/
我們直接設定SGID,一樣有兩種方式:
chmod g+s /TEMP/;
或者是:
chmod 2755 /TEMP/;
我們把/TEMP/這個資料夾的群組,改成picasso;然後進到該資料夾,建立一個叫TEST.TXT的檔案:
chgrp picasso /TEMP/; ls -ld /TEMP/
cd /TEMP/; touch ./TEST.TXT; ls -l
由上圖可知,以管理者root的權限,進入到SGID過的資料夾/TEMP/,所建立的檔案,其群組即為picasso。
我們再細看這個檔案,使用者root的權限為rw-,表可讀寫;群組picasso的權限為r--,表僅可讀取。
所以,我們以root的身份去修改TEST.TXT這個檔案;然後再以picasso群組的成員-picasso去檢視這個檔案。
假如picasso可以檢視這個檔案,代表SGID這個資料夾成功!!
◎ SBIT (Sticky Bit)
終於提到最後一個了─SBIT!!
SUID只能針對Binary File,無法針對目錄;
SGID除了針對一般檔案之外,亦能夠針對目錄;
SBIT只能夠針對目錄,無法用在一般檔案。
mkdir -p /TEMP/; chmod 777 /TEMP/; ls -ld /TEMP/
chmod o+t /TEMP/; ls -ld /TEMP/
id ally
su - ally
cd /TEMP/; touch ./MIS.TXT; echo "Ally test." > ./MIS.TXT; ls -l ./MIS.TXT; cat -n ./MIS.TXT
exit
id jasmine
su - jasmine
cd /TEMP/; echo "Jasmine appended." >> ./MIS.TXT; cat -n ./MIS.TXT
由上圖的範例可知,我們建立一個資料夾/TEMP/,其權限為777,表擁有者、所屬群組和其它的使用者均有讀取、寫入和執行的權限。
我們再把/TEMP/資料夾設定SBIT,以Ally的身份來新增檔案;再以Jasmine的身份去修改檔案。會發現權限不符而被拒決了。表示/TEMP/資料夾設定SBIT成功!!
最後,再補充一點:無論是SUID、SGID或SBIT,我們看到的都是小寫的s或小寫的t,如下圖:
倘若,User、Group和Others連執行的權限都沒有,我們還強制設定SUID、SGID和SBIT,會發生什麼狀況??
都變成大寫的S和大寫的T了!!
相關文章:SUID, SGID, SBIT (II)
沒有留言:
張貼留言