Linux中文件和目錄的權限關系
註意:1.以下的情況只針對文件或目錄的所有者(u)來說;2.只針對ext4文件系統
在了解之前先說一下新建、刪除、修改文件在系統底層是如何運行的。磁盤分兩部分來存放文件的,其中一部分存放的是文件的屬性(元數據)比如:文件大小、修改日期、權限等,另一部分才是數據內容。當新建一個文件時會對應創建它的元數據,還會給文件分配一個節點號(inode)。當要查找這個文件時,是先找到對應的節點號,再通過節點表去數據存儲區域找到數據反饋給用戶。當執行刪除文件時,其實是把數據塊放到空閑列表中,數據不會馬上被刪除,但當另一個文件使用數據塊時將被覆蓋。
首先來說一下文件權限,相對來說比較簡單易懂。
r:讀權限,指文件的具體內容,比如說文本文件裏面寫了些什麽。這裏“讀”的內容不包括文件的屬性,比如大小、修改日期、權限等,也就是上面提到的元數據。因為那不屬於文件內容。
w:寫權限,編輯,修改或者新增文件的內容,但是不含刪除該文件。(由父目錄的w權限決定)
x:執行權限。但擁有了文件的執行權限並不意味著一定可以執行文件,還得看是否擁有父目錄的x權限。
總之,對於文件的r、w、x來說,主要都是針對“文件的內容”,與文件名的存在與否沒有關系。因為文件記錄的是實際的數據(相對於目錄)。
目錄的權限:(目錄也就是文件夾,也是一種特殊的文件)相對於文件來說記錄的是實際數據,目錄主要記錄的內容是文件名列表。
r:讀取目錄結構列表。比如ls。可查看文件名,文件的屬性就不一定可以看了,要想看文件屬性還得文件的父目錄有x權限。
w:修改目錄結構列表的權限(而且無視列表文件的權限)。包括:新建文件、目錄,刪除文件、目錄,重命名文件、目錄,移動文件、目錄。比如一個普通用戶擁有一個目錄的w權限(同時也要擁有目錄的x權限),即便是該目錄下有root的文件,也可以照刪不誤。
x:意為用戶是否可以進入該目錄,比如cd。以此目錄作為工作目錄。如果不具有某一目錄的x權限,就無法切換到該目錄下,該目錄下的任何文件也不能被查看、修改、執行、刪除。(最多只能看到文件名,前提是有父目錄的r權限)。
Linux中文件和目錄的權限關系