Linux檔案特殊許可權SUID,SGID,SBIT
阿新 • • 發佈:2019-01-04
SUID:Set UID (s)
當s這個標誌出現在檔案的擁有者(owner)的x許可權上時,此時稱為Set UID,簡稱為SUID的特殊許可權。例如:/usr/bin/password
[[email protected] ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32200 Jan 29 2010 /usr/bin/passwd
SUID的作用:
- SUID許可權僅對二進位制程式有效
- 執行者對於改程式需要具有x的可執行許可權
- 本許可權僅在執行該程式的過程中有效(run-time)
- 執行者將具有該程式擁有者的許可權
SGID:Set GID (s)
當s標誌出現在群組(group)的x時稱為Set GID,簡稱SGID的特殊許可權。例如:/usr/bin/locate
[[email protected] ~]# ll /usr/bin/locate
-rwx--s--x. 1 root slocate 42032 Mar 30 2010 /usr/bin/locate
不像SUID只能對檔案有效,SGID不僅對檔案有效,對目錄也是有效的。
SGID針對檔案的作用:
- SGID對二進位制程式有效
- 程式執行者對於該程式來說,需要具備x的許可權
- 執行者在執行的過程中將會獲得該程式群組的支援
SGID針對目錄的作用:
- 使用者若對於此目錄具有r與x的許可權時,該使用者能夠進入此目錄
- 使用者在此目錄下的有效群組(effective group)將會變成目錄的群組
- 用途:若使用者在此目錄下具有w的許可權(可以新建檔案),則使用者所建立的新檔案,該新檔案的群組與此目錄的群組相同
SBIT:Sticky Bit(t)
SBIT只對目錄有效。例如:/tmp
[[email protected] ~]# ll -d /tmp
drwxrwxrwt. 17 root root 4096 Oct 26 11:45 /tmp
SBIT的作用:
- 當前使用者對於此目錄具有w,x許可權,亦即具有寫入的許可權時,當用戶在該目錄下建立檔案或目錄時,僅有自己與root才有權刪除該檔案或者目錄
SUID/SGID/SBIT組成了檔案或目錄的特殊許可權,如果在新建檔案或者目錄的時候需要用到這些特殊許可權,可以用chmod來完成。
[[email protected] ~]# cd /tmp
[ [email protected] tmp]# touch test #新建檔案,預設許可權為0644
[[email protected] tmp]# chmod 4755 test; ls -l test #增加SUID,並需要執行者具有x許可權
-rwsr-xr-x 1 root root 0 Oct 26 12:13 test
[[email protected] tmp]# chmod 6755 test; ls -l test #增加SGID,並也需要執行者具有x許可權
-rwsr-sr-x 1 root root 0 Oct 26 12:13 test
[[email protected] tmp]# chmod 1755 test; ls -l test #增加SBIT,並也需要執行者具有x許可權
-rwxr-xr-t 1 root root 0 Oct 26 12:13 test
[[email protected] tmp]# chmod 7666 test; ls -l test #增加SUID/SGID/SBIT,但是執行者沒有具有x許可權,其實修改的都是空的特殊許可權,用大寫字母表示(S,T)
-rwSrwSrwT 1 root root 0 Oct 26 12:13 test