檔案的特殊屬性

  • 檔案的特殊屬性 SUID/SGID/SBIT
    1. Set UID (SUID);設置使文件在執行階段具有文件所有者的權限。
      1. SUID 典型的的例子為 /etc/passwd。
        1. 帳號與密碼存放於 /etc/passwd 與 /etc/shadow。而 /etc/shadow 的權限為 『-r--------』,且擁有者為 root。
        2. 一般身份使用者要更新自己的密碼,執行 /usr/bin/passwd 卻可以存取密碼檔 /etc/shadow。
      2. SUID 僅可用在『二進位制檔案 (binary file) 』上。
    2. Set GID (SGID):只對目錄有效。
      1. 目錄被設置後,任何用戶在此目錄下建立的文件,所屬群組皆與該目錄所屬的群組相同。
      2. 可使用在特定的多人團隊的專案開發上。
    3. Sticky Bit (SBIT):防刪除屬性,只對目錄有效。
      1. 在具有 SBIT 的目錄下,使用者若在該目錄下具有 w 及 x 的權限,則當使用者在該目錄下建立檔案或目錄時,只有檔案擁有者與 root 才有權力刪除。
      2. 典型的例子如 /tmp 的權限是 『drwxrwxrwt』,任何用戶都可在 /tmp 內新增、修改檔案,但僅有該檔案/目錄建立者與 root 能夠刪除自己的目錄或檔案。
  • SUID/SGID/SBIT 權限的顯示與設定
    1. 使用 ls -l 列出檔案屬性,如:
      
      rwsrw-r--		 表示設置 SUID 屬性
      
      rwxrwsrw- 表示設置 SGID 屬性
      rwxrw-rwt 表示設置 SBIT 屬性
    2. 如果本來在該位上有 x 屬性,則這些特殊屬性顯示為小寫字母 (s, s, t),否則顯示為大寫字母 (S, S, T)
    3. SUID/SGID/SBIT 權限設定與一般 rwx 屬性之設定類似:
      4 為 SUID
      2 為 SGID
      1 為 SBIT
    4. 例題:更改並顯示檔案 foo 的屬性。
      [root@dywHome2 test]# chmod 4755 foo; ll foo
      -rwsr-xr-x 1 root root 7 Sep  4 13:25 foo*
      [root@dywHome2 test]# chmod 6755 foo; ll foo
      -rwsr-sr-x 1 root root 7 Sep  4 13:25 foo*
      [root@dywHome2 test]# chmod 1755 foo; ll foo
      -rwxr-xr-t 1 root root 7 Sep  4 13:25 foo*
      [root@dywHome2 test]# chmod 7666 foo; ll foo
      -rwSrwSrwT 1 root root 7 Sep  4 13:25 foo
      
    5. Linux 系統中典型的例子:
      [root@dywHome2 test]# ll /usr/bin/passwd; ls -ld /var/spool/mail;\
      >ls -ld /tmp
      -r-s--x--x 1 root root 15552 May  8  2006 /usr/bin/passwd*
      drwxrwsr-x 2 root mail 1024 Aug  3  2006 /var/spool/mail/
      drwxrwxrwt 26 root root 2048 Sep  4 15:51 /tmp/
      

練習題

  1. 請說明檔案的特殊屬性 SUID 之作用為何?並舉一典型例子。
    Sol. 使文件在執行階段具有文件所有者的權限。例如 /usr/bin/passwd。
  2. 檔案的特殊屬性 SUID 只能設置那種類型的檔案?
    Sol. 二進位執行檔。
  3. 請說明檔案的特殊屬性 SGID 之作用為何?並舉一典型例子。
    Sol. 目錄被設置 SGID 屬性後,任何用戶在此目錄下建立的文件,所屬群組皆與該目錄所屬的群組相同。例如 /var/spool/mail。
  4. 請說明檔案的特殊屬性 SBIT 之作用為何?並舉一典型例子。
    Sol. 目錄被設置 SBIT 屬性後,使用者若在該目錄下具有 w 及 x 的權限,則當使用者在該目錄下建立檔案或目錄時,只有檔案擁有者與 root 才有權力刪除。例如 /tmp。
  5. 以 ls -l 顯示檔案屬性 rwsrw-r--,表示該檔具有那種特殊屬性?
    Sol. SUID
  6. 以 ls -l 顯示檔案屬性 rwxrwsr--,表示該檔具有那種特殊屬性?
    Sol. SGID
  7. 以 ls -l 顯示檔案屬性 rwxrw-r-t,表示該檔具有那種特殊屬性?
    Sol. SBIT
  8. 執行 chmod 4755 foo; ll foo,則顯示檔案 foo 屬性為何?
    Sol. -rwsr-xr-x
  9. 執行 chmod 6755 foo; ll foo,則顯示檔案 foo 屬性為何?
    Sol. -rwsr-sr-x
  10. 執行 chmod 1755 foo; ll foo,則顯示檔案 foo 屬性為何?
    Sol. -rwxr-xr-t
  11. 執行 chmod 4666 foo; ll foo,則顯示檔案 foo 屬性為何?
    Sol. -rwSrw-rw-
  12. 執行 chmod 2666 foo; ll foo,則顯示檔案 foo 屬性為何?
    Sol. -rw-rwSrw-
  13. 執行 chmod 1666 foo; ll foo,則顯示檔案 foo 屬性為何?
    Sol. -rw-rw-rwT

  DYWANG_HOME