Linux 下檔案的 SUID/SGID/SBIT 屬性設定
SUID/SGID/SBIT 的屬性同樣是用 chmod 指令設定,在原本 chmod 設定時的三個數字前面再加一個數字。這三個屬性的加權分別為
- SUID: 4
- SGID: 2
- SBIT: 1
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
No comments yet.