Permissions

有什麼方法可以防止從使用者擁有的目錄中刪除某些文件?

  • August 30, 2018

假設使用者有Directory1並且它包含File1 File2 CantBeDeletedFile 如何使使用者永遠不會被允許刪除CantBeDeletedFile

如果我更改Directory1的所有權並刪除寫入權限,使用者將無法刪除任何文件。他們也無法添加新文件等。

我只想能夠設置一些永遠不會被刪除的文件。

更具體的描述。

我正在創建使用者配置文件。我正在他們的Desktop中創建應用程序啟動器文件。所以我想設置一些啟動器文件(.desktop)並製作它們,以便使用者只能啟動它們並且他們無法重命名或刪除,只需啟動即可。

目前,如果使用者擁有包含任何文件的目錄。他可以刪除。

如果沒有適用於所有 *nix 的通用方式,那就是 Linux 和 ext4 FS。

(我不喜歡闖入使用者的家,我認為應該允許他們對自己的家做任何他們想做的事……但無論如何……)

這應該適用於linux(至少)。我假設user已經是該組的成員user。一種解決方案是更改所有權Directory1並在目錄上設置粘性位:

chown root:user Directory1
chmod 1775 Directory1

然後使用:

chown root Directory1/CantBeDeletedFile

現在,user由於粘性位¹,將無法刪除此文件。user仍然能夠在Directory1. 但請注意,他們將無法刪除Directory1,因為它永遠不會被清空。

  1. 當目錄啟用sticky bit 時,使用者(除了所有者)只能刪除目錄中自己的文件。這用於/tmp權限為1777=的目錄rwxrwxrwt

i使用該屬性使文件不可變。

chattr +i file.desktop

有關更多資訊,請參閱man chattr

引用自:https://unix.stackexchange.com/questions/20104