搜尋此網誌

RHCE - 特殊權限


Set UID 

會製作出 s 與 t 的權限,是為了讓一般使用者在執行某些程式的時候, 能夠暫時的具有該程式擁有者

的權限。 舉例來說好了,我們知道帳號與密碼的存放檔案其實是 /etc/passwd 與 /etc/shadow 。 而 

/etc/shadow 這個檔案的權限是什麼?是『-r--------』。且他的擁有者是 root 喔!在這個權限中,僅有 

root 可以『強制』儲存,其他人是連看都沒有辦法看的吶!

SUID 僅可用在『二進位制檔案(binary file)』上, SUID 因為是程式在執行的過程中擁有檔案擁有者的權

限,因此,他僅可用於 binary file , 不能夠用在批次檔 (shell script) 上面的!這是因為 shell script 只是

將很多的 binary 執行檔叫進來執行而已!所以 SUID 的權限部分,還是得要看 shell script 呼叫進來的程

式的設定, 而不是 shell script 本身。當然,SUID 對於目錄也是無效的~這點要特別留意。


Set GID 

進一步來說,如果 s 的權限是在 group 時,那麼就是 Set GID ,簡稱為 SGID。 SGID 可以用在兩個部

分喔!

檔案:如果 SGID 是設定在 binary file 上面,則不論使用者是誰,在執行該程式的時候, 他的有效群組 

(effective group) 將會變成該程式的群組所有人 (group id)

目錄:如果 SGID 是設定在 A 目錄上面,則在該 A 目錄內所建立的檔案或目錄的 group ,將會是 此 A

 目錄的 group !

一般來說, SGID 應該是比較多用在特定的多人團隊的專案開發上, 在系統當中應該會比較少這個設

定才對~


Sticky Bit 

這個 Sticky Bit 目前只針對目錄有效,對於檔案已經沒有效果了。 SBit 對於目錄的作用是:『在具有 

SBit 的目錄下,使用者若在該目錄下具有 w 及 x 的權限, 則當使用者在該目錄下建立檔案或目錄時,

只有檔案擁有者與 root 才有權力刪除』。換句話說:當甲這個使用者於 A 目錄下是擁有 group 或者是 

other 的項目,並且擁有 w 的權限, 這表示『甲使用者對該目錄內任何人建立的目錄或檔案均可進行 

"刪除/更名/搬移" 等動作。』 不過,如果將 A 目錄加上了 Sticky bit 的權限項目時, 則甲只能夠針對自

己建立的檔案或目錄進行刪除/更名/移動等動作。

舉例來說,我們的 /tmp 本身的權限是『drwxrwxrwt』, 在這樣的權限內容下,任何人都可以在 /tmp 

內新增、修改檔案,但僅有該檔案/目錄建立者與 root 能夠刪除自己的目錄或檔案。這個特性也是挺重

要的啊!你可以這樣做個簡單的測試:

1. 以 root 登入系統,並且進入 /tmp 當中;

2. touch test,並且更改 test 權限成為 777 ;

3. 以一般使用者登入,並進入 /tmp;

4. 嘗試刪除 test 這個檔案!

SUID/SGID/SBIT 權限設定 

前面介紹過 SUID 與 SGID 的功能,那麼如何開啟檔案使成為具有 SUID 與 SGID 的權限呢?! 這就需

要剛剛的數字更改權限的方法了!現在你應該已經知道數字型態個更改權限方式為『三個數字』的組

合, 那麼如果在這三個數字之前再加上一個數字的話,那最前的面數字就代表這幾個屬性了! ( 註:

通常我們使用 chmod xyz filename 的方式來設定 filename 的屬性時,則是假設沒有 SUID, SGID 及 

Sticky bit 啦! ) 

4 為 SUID 

2 為 SGID 

1 為 Sticky bit

假設要將一個檔案屬性改為『-rwsr-xr-x』時,由於 s 在使用者權限中,所以是 SUID ,因此, 在原先

的 755 之前還要加上 4 ,也就是:『 chmod 4755 filename 』來設定!此外,還有大 S 與大 T 的產生

喔!

鳥哥的 Linux 私房菜 - 檔案與目錄

資料來源:http://www.vbird.org/linux_basic/0220filemanager.php
 

Copyright © Jackie.Chen | Powered by Blogger | Template by 54BLOGGER | Fixed by Free Blogger Templates