linux特殊許可權s和t

lusklusklusk發表於2017-02-16
普通許可權rwx的數字表示式是421,r為4、w為2、x為1,讀4、寫2、可執行1

ls -l顯示如下格式,一共10位,許可權位是9位
-rw-r-xr--
最左邊1位表示檔案型別,例如d、l、-、c、d(目錄、符合連結檔案、普通檔案、字元裝置檔案、塊裝置檔案)
9位許可權位,左邊三位rw-是UID、中間三位r-x是GID、右邊三位r--是OTHER,如上許可權就是654


特殊許可權的數字表示式也是421,SUID為4、SGID為2、Sticky為1

特殊許可權時,許可權位是12位,從左往右數,第1位是SUID(Set User ID),第2位是SGID(Set Group ID),第3位是Sticky bit
SGTrw-r--r--

chmod 4---是設suid,如果該位有許可權, 則表示設定setuid 4---
chmod 2---是設定sgid,如果該位有許可權, 則表示設定setgid 2---
chmod 1---是設sticky,如果該位有許可權, 則表示設定sticky 1---

設定完這些特殊許可權標誌值後, ls -l顯示如下
-rwsrw-r-- 表示有setuid標誌
-rwxrwsrw- 表示有setgid標誌
-rwxrw-rwt 表示有sticky標誌
那麼原來的可執行標誌x到哪裡去了呢? 系統是這樣規定的, 如果本來在該位上有x, 則這些特殊標誌顯示為小寫字母 (s, s, t). 否則, 顯示為大寫字母 (S, S, T)
即有suid時,屬主位的x變成s,如果屬主位沒有x,則x位置上的-變成S
即有sgid時,屬組位的x變成s,如果屬組位沒有x,則x位置上的-變成S
即有sticky時,OHTER位的x變成t,如果OHTER位沒有x,則x位置上的-變成T


建立檔案時,預設是644許可權
[root@DM]# ll
總用量 0
[root@DM]# touch file1
[root@DM]# vi file2
[root@DM]# ll
總用量 4
-rw-r--r-- 1 root root 0 2月  15 14:57 file1
-rw-r--r-- 1 root root 2 2月  15 14:57 file2
[root@DM]# chmod 7644 file1
[root@DM]# chmod 5644 file2
[root@DM]# ll
總用量 4
-rwSr-Sr-T 1 7654 root 0 2月  15 14:57 file1
-rwSr--r-T 1 root root 2 2月  15 14:57 file2



[root@DM]# touch file3
[root@DM]# chmod 751 file3
[root@DM]# ll
-rwxr-x--x 1 root root 0 2月  16 15:35 file3
[root@DM]# chmod 6751 file3
[root@DM]# ll
-rwsr-s--x 1 root root 0 2月  16 15:35 file3

-rwsr-s--x就是6751
-rwxr-x--x是751
第一個s是屬主4,第二個s是屬組2,加起來就是6

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2133676/,如需轉載,請註明出處,否則將追究法律責任。

相關文章