如果文件和文件夾的所有者沒有父目錄的權限,為什麼他們可以修改其內容?
我的問題的一個例子是
/home
目錄:drwxr-xr-x 8 root root 4096 Jan 29 23:44 home/
所以,所有者
/home
是root
。但我是我個人主文件夾的所有者:
drwx--x--- 85 teo teo 4096 Jan 30 16:22 teo/
為什麼我的使用者可以修改
teo/
文件夾下的東西,如果/home
它歸root
?我的意思是,對我個人文件夾的修改也是對文件夾的修改
/home
,因為它是 的子文件夾/home
,而我不在root
組中。
在 Unix 中,有文件和目錄(以及一些奇怪的“文件”,如管道和設備,但對它們的權限就像普通文件一樣工作)和符號連結(本質上,文件包含它們指向的文件的名稱)。目錄只是文件名列表和對相應物理文件的引用。這樣,您可以讓相同的文件以不同的名稱出現,或者以相同(或另一個)名稱出現在不同的目錄中。
文件系統對像有三種基本權限:r(ead)、w(rite) 和 e(x)ecute。對於正常文件,讀取意味著能夠讀取其內容(例如複製、查看…),寫入意味著能夠修改其內容(覆蓋、在末尾添加內容、截斷到長度為零;注意這與讀取無關,您可以擁有一個可以修改但不能讀取的文件),執行意味著將其作為程序執行。對於目錄,讀取意味著列出它的內容(文件名),寫入意味著修改(添加/刪除文件),執行意味著使用目錄來獲取文件本身(如果目錄上有 r 而不是 x,你可以看到文件名,但不了解它們)。符號連結的權限無關緊要,只要按照上面提到的:一個包含指向的文件名的短文件,內容正常處理。是的,完全正交(獨立)。
系統將權限分為三組:所有者、對象所屬的組以及其他所有人。每個使用者屬於一個(或多個)組。在檢查是否允許操作時,首先檢查您是否是所有者,如果是,則所有者權限規則;如果您不是所有者但屬於該組,則考慮組權限;否則,檢查其他權限。
沒錯,它允許相當荒謬的權限組合。但它是一個簡單的模型,總有一天你會發現一些“廢話”組合的用處。
某些對象的所有者有權隨意更改權限。