Linux
為什麼我能夠在我的主目錄中刪除 root 擁有的文件而不是 root?
所以我今天早些時候對我的伺服器進行了一些維護,並註意到我能夠在我的主目錄中刪除 root 擁有的文件。
我能夠重現一個樣本:
[cbennett@nova ~/temp]$ ls -al total 8 drwxrwxr-x. 2 cbennett cbennett 4096 Oct 5 20:59 . drwxr-xr-x. 22 cbennett cbennett 4096 Oct 5 20:58 .. -rw-rw-r--. 1 cbennett cbennett 0 Oct 5 20:58 my-own-file [cbennett@nova ~/temp]$ sudo touch file-owned-by-root [cbennett@nova ~/temp]$ ls -al total 8 drwxrwxr-x. 2 cbennett cbennett 4096 Oct 5 21:00 . drwxr-xr-x. 22 cbennett cbennett 4096 Oct 5 20:58 .. -rw-r--r--. 1 root root 0 Oct 5 21:00 file-owned-by-root -rw-rw-r--. 1 cbennett cbennett 0 Oct 5 20:58 my-own-file [cbennett@nova ~/temp]$ rm file-owned-by-root rm: remove write-protected regular empty file ‘file-owned-by-root’? y [cbennett@nova ~/temp]$ ls -al total 8 drwxrwxr-x. 2 cbennett cbennett 4096 Oct 5 21:00 . drwxr-xr-x. 22 cbennett cbennett 4096 Oct 5 20:58 .. -rw-rw-r--. 1 cbennett cbennett 0 Oct 5 20:58 my-own-file [cbennett@nova ~/temp]$
-rw-r--r--
我的問題是,當我不是 root 時,我如何能夠刪除 root 擁有並具有權限的文件?
權限、內容和所有屬性都是 inode 的一部分。該名稱在目錄條目中。權限不會遞歸繼承(除非您在 Posix ACL 中使用預設值)。
當您刪除一個文件時,您只需在內部刪除一個從目錄條目到 inode 的硬連結。當所有硬連結都被刪除並且 inode 未使用時,文件系統將回收空間。無論文件上設置了哪些權限(不可變的 ext 權限除外),您都只需要對該文件夾的寫入權限。對於空文件夾也是如此。
當您刪除非空文件夾時,您需要對要刪除的文件夾及其父文件夾具有寫入權限。