- Vixual - http://www.vixual.net/blog -

Linux 下檔案的 SUID/SGID/SBIT 屬性設定

SUID/SGID/SBIT 的屬性同樣是用 chmod 指令設定,在原本 chmod 設定時的三個數字前面再加一個數字。這三個屬性的加權分別為

SUID (Set UID)

讓檔案在執行時,該檔案執行時,檔案的執行身份會暫時變成該檔案的「擁有者」。Ex:

chmod 4755 test.pl

SGID (Set GID)

當 SGID 設在檔案時,讓該檔案執行時,檔案的有效群組會暫時變成該檔案的「擁有群組」。

當 SGID 設在目錄時,則該目錄的「擁有群組」會自動設定到其下所建立的檔案 (或子目錄)。

SBIT (StickyBit)

SBIT 僅對目錄有效,當目錄設定 SBIT 時,在該目錄下建立的檔案 (或子目錄),只有 root 及檔案 (或子目錄) 的擁有者可以刪除,例如:「/tmp] 。

錯誤處理

如果設為 SUID 的 perl 程式要執行時,出現錯誤訊息「Can't do setuid (cannot exec sperl)」,請安裝 suidperl 套件:

yum install perl-suidperl

參考網頁