1. 程式人生 > >Linux檔案特殊許可權SUID,SGID,SBIT

Linux檔案特殊許可權SUID,SGID,SBIT

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的作用:
  1. SUID許可權僅對二進位制程式有效
  2. 執行者對於改程式需要具有x的可執行許可權
  3. 本許可權僅在執行該程式的過程中有效(run-time)
  4. 執行者將具有該程式擁有者的許可權

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針對檔案的作用:

  1. SGID對二進位制程式有效
  2. 程式執行者對於該程式來說,需要具備x的許可權
  3. 執行者在執行的過程中將會獲得該程式群組的支援

SGID針對目錄的作用:

  1. 使用者若對於此目錄具有r與x的許可權時,該使用者能夠進入此目錄
  2. 使用者在此目錄下的有效群組(effective group)將會變成目錄的群組
  3. 用途:若使用者在此目錄下具有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