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

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

據我所知,有12個權限位,其中使用者、群組和其他使用者各有3組,每組3位,分別是RWX。 RW 是讀和寫,但對 X 來說是search目錄和execute檔案。

這是我不明白的:

  1. 剩下的 3 個模式位元是什麼?

  2. 我知道文件目錄本身也被認為是一個文件,因為UNIX中的所有東西都是文件(這是真的嗎?),但是由於UNIX系統使用ACL來表示文件系統,那麼文件系統就是文件名-inode_number的列表對。檔案目錄在哪裡儲存它自己的索引節點號碼和檔案名稱?

答案1

stat /bin/su在一個系統上顯示:

Access: (4755/-rwsr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)

4755所有 12 個模式位的八進位表示形式。此數字對應於位:

octal    4   7   5   5
bits   100 111 101 101
       sst uuu ggg ooo
       ug  rwx rwx rwx

其中uuugggooo是使用者、群組和其他人的權限位。剩餘組(依序的第一組)包含 setuid ( su)、setgid ( sg) 和 Sticky ( t) 位元。

setuid 和黏性位元通常不會被提及,因為對於大多數文件來說它們都是零。它們仍然存在於每個文件中,與其他文件一起保存。


如果我們真正認真對待它,一些檔案系統和介面會儲存文件類型沿著模式位,在更高的位。上面只佔了12位,所以16位元字段還剩下4位。例如,參見的描述st_modestat(2)

答案2

  1. 剩下的三位分別代表setuid、setgid和sticky位;看了解 UNIX 權限和檔案類型了解詳情。這些都儲存在inode中。

  2. 目錄實際上是一種儲存名稱清單和對應索引節點的檔案。目錄自己的名稱和inode儲存在其父目錄中;根目錄是一種特殊情況,它通常是檔案系統中的固定索引節點(Ext4 中的索引節點 2)並且當然總是被命名/(最終相對於它的安裝點...)。

相關內容