我想問一下,ext4
當目錄權限和檔案權限之間有衝突時,Linux 作業系統在檔案系統上使用的規則是什麼。
例子:
drwxrwx--- user1 group2 FOLDER
-rw-r--r-- user1 group1 FILE
group2
文件中的使用者FILE
將擁有什麼權限?
謝謝。
答案1
如果使用者位於 group2 中,那麼他們將遵循目錄 FOLDER 的群組權限。 IE
rwx
假設他們不是 user1 並且也不在 group1 中,那麼我們將查看 FILE 的「其他」權限。 IE
r--
因此,他們對此文件僅有讀取權限。請注意,這有點令人困惑。他們無法直接修改此文件,因為沒有寫入權限。然而,由於他們有wx
目錄,他們可以rm
這個文件,然後用新的文件替換它。 (注意,inode 可能會發生變化,並且他們無法將chown
其交給原始所有者,因此這與直接修改文件並不完全相同。)
所以一般來說,權限是從最父目錄繼承的。隨著權限變得更加嚴格,它們會限制子檔案和目錄。但是,如上所述,如果您擁有wx
頂級目錄的權限,則有一些解決方法。
編輯
同樣,如果您使用 編輯文件vim
,那麼您將看到 inode 發生變化。這不是“編輯”它,而是“重寫”它。
$ echo foo > file
$ ls -li file
5213942 -rw-r--r-- 1 sparhawk sparhawk 4 Aug 16 15:34 file
$ sudo chown root:root file
$ ls -li file
5213942 -rw-r--r-- 1 root root 4 Aug 16 15:34 file
$ vim file
$ ls -li file
5214750 -rw-r--r-- 1 lee lee 7 Aug 16 15:35 file
vim
注意覆蓋檔案後 inode 的變化。另請注意,vim 會發出警告,指出該檔案是唯讀的。我不得不保存:w!
。