檔案的特殊屬性

  1. 檔案的特殊屬性 SUID/SGID/SBIT
    1. Set UID (SUID);設置使文件在執行階段具有文件擁有者的權限,僅可用在「二進位制執行檔」上。
    2. Set GID (SGID):只對目錄有效,任何帳號在此目錄下建立的文件,所屬群組皆與該目錄所屬的群組相同。
    3. Sticky Bit (SBIT):防刪除屬性,只對目錄有效,使用者在該目錄下建立檔案或目錄時,只有檔案擁有者與 root 才有權力刪除。
  2. SUID/SGID/SBIT 權限的顯示:使用 ls -l 列出檔案屬性, x 屬性,設定特殊屬性時顯示為小寫字母 (s, s, t)
    rwsrw-r--     s 表示設置 SUID 屬性
    rwxrwsrw-     s 表示設置 SGID 屬性
    rwxrw-rwt     t 表示設置 SBIT 屬性
    
  3. SUID/SGID/SBIT 權限的設定:使用 chmod 如
    chmod 4755     第一個數字 4 表示設置 SUID 屬性
    chmod 2770     第一個數字 2 表示設置 SGID 屬性
    chmod 1777     第一個數字 1 表示設置 SBIT 屬性
    
  4. SUID 例子:任何帳號可以用 passwd 變更密碼,修改 /etc/shadow 中的密碼雜湊。 ,/usr/bin/passwd 的屬性為 -rwsr-xr-x,其中 s 就是 SUID。
    [root@kvm8 ~]# whereis passwd
    passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz
    [root@kvm8 ~]# ll /usr/bin/passwd
    -rwsr-xr-x. 1 root root 91416 Nov  4  2024 /usr/bin/passwd
    [root@kvm8 ~]# ll /etc/shadow
    ----------. 1 root root 1672 Oct 23 13:55 /etc/shadow
    
  5. SGID 例子:/usr/log/joural 目錄群組為 systemd-joural,任何帳號在此目錄中的檔案所屬目錄皆為 systemd-joural。 /run/log/joural 的屬性為 drwxr-sr-x,其中 s 就是 SGID。
    [root@kvm8 ~]# ll -d /run/log/journal
    drwxr-sr-x+ 3 root systemd-journal 60 Oct 16 14:08 /run/log/journal
    
  6. SBIT 例子:/tmp 目錄的屬性為 drwxrwxrwt,其中 t 就是 SBIT。任何帳號都可在 /tmp 目錄產生檔案,但只有自己及 root 可刪除。
    [root@kvm8 ~]# ll -d /tmp
    drwxrwxrwt. 7 root root 4096 Oct 23 15:03 /tmp