我正在運行 Debian 7 伺服器並具有以下場景(範例名稱)
用戶:
- 保羅:保羅
- 約翰·保羅
目錄:/home/paul/目錄
- 文件W(所有者保羅,保羅集團,權利:0770)
- 文件 X(所有者 paul,群組 paul,權利:0700)
- 文件 Y(所有者 paul,Group paul,權利:0700)
- 文件Z(所有者約翰,保羅組,權利:0770)
使用者 john 應該能夠刪除“檔案 Z”,但不能刪除“檔案 X”或“檔案 Y”。
簡而言之:他應該只能刪除自己的文件,但可以在有權限的情況下編輯所有文件。
我正在尋找一種解決方案,以在指定文件上使用目錄的刪除位。 “chattr”選項不是選項,因為 root 權限不應該執行任何操作。
有人有想法嗎?
答案1
在 POSIX 安全模型中,要刪除文件,您只需要對其進行寫入訪問 父目錄。因此,如果「john」帳戶擁有+w
/home/john/Directory 的權限,它將始終能夠刪除其中的檔案。
但有一個例外是「黏性」/「限制刪除」模式。當你設定+t
在目錄上,檔案刪除受到限制僅有的文件的擁有者或目錄的擁有者。 (例如,以/tmp
這種方式工作。)因此,如果您chmod +t
和chown root
目錄,您應該得到預期的結果。