Files

UNIX 權限模式位中的最後 3 位是什麼?

  • June 1, 2018

我知道有 12 個權限位,其中有 3 組,每組 3 位,每個使用者、組和其他,分別是 RWX。RW 是讀寫的,但 X 是search用於目錄和execute文件的。

這是我不明白的:

  1. 剩下的 3 個模式位是什麼,它們都儲存在 inode 中嗎?
  2. 我知道文件目錄本身也被認為是一個文件,因為 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)

引用自:https://unix.stackexchange.com/questions/447334