Files
UNIX 權限模式位中的最後 3 位是什麼?
我知道有 12 個權限位,其中有 3 組,每組 3 位,每個使用者、組和其他,分別是 RWX。RW 是讀寫的,但 X 是
search
用於目錄和execute
文件的。這是我不明白的:
- 剩下的 3 個模式位是什麼,它們都儲存在 inode 中嗎?
- 我知道文件目錄本身也被認為是一個文件,因為 UNIX 中的所有東西都是文件(這是真的嗎?),但是由於 UNIX 系統使用 ACL 來表示文件系統,那麼文件系統是文件名-inode_number 的列表對。文件目錄在哪裡儲存它自己的 inode 號和文件名?
stat /bin/su
在一個系統上顯示:Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
所有 12 個模式位都有八進製表示
4755
。數字對應於位:octal 4 7 5 5 bits 100 111 101 101 sst uuu ggg ooo ug rwx rwx rwx
其中和是使用者
uuu
、組和其他人的權限位。剩下的組(按順序排列的第一個)包含 setuid ( )、setgid ( ) 和 sticky ( ) 位。ggg``ooo``su``sg``t
setuid 和sticky 位通常不會被提及,因為它們對於大多數文件都是零。它們仍然存在於每個文件中,與其他文件一起保存。
如果我們真正深入了解它,一些文件系統和介面將文件類型沿著模式位儲存在更高的位中。上面只佔12位,所以16位欄位,剩下4個。例如,參見in的描述
st_mode``stat(2)
。