Linux

為什麼我能夠在我的主目錄中刪除 root 擁有的文件而不是 root?

  • February 9, 2019

所以我今天早些時候對我的伺服器進行了一些維護,並註意到我能夠在我的主目錄中刪除 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 權限除外),您都只需要對該文件夾的寫入權限。對於空文件夾也是如此。

當您刪除非空文件夾時,您需要對要刪除的文件夾及其父文件夾具有寫入權限。

引用自:https://serverfault.com/questions/726907