Linux

如何使文件在 linux 伺服器中不可刪除但可移動?

  • April 13, 2019

我正在管理我們伺服器上的一些文件夾。伺服器執行:

REDHAT_SUPPORT_PRODUCT=“紅帽企業 Linux” REDHAT_SUPPORT_PRODUCT_VERSION=“7.6”

我在“/srv/”中創建了一個目錄並將其命名為“test”。我在“test”中添加了另一個名為“archived”的目錄。

我創建了 project_managers 使用者組並將一些使用者添加到該組。project_managers 遞歸地對“/srv/test/”具有讀/寫/執行權限。

我希望 project_managers 能夠將文件從一個目錄移動到另一個目錄,但不能從伺服器中完全刪除文件。

例如,我希望 project_managers 有權將“/srv/test/my_code.py”移動到“/srv/test/archived/”,但無權刪除“/srv/test/my_code.py”

我已經完成了: sudo chattr -R +i /srv/test/

它可以防止刪除和移動文件。

是否可以使文件不可刪除但可移動?

回答您的問題:移動和刪除非常相似,我認為您需要不同的策略。

我會將目錄置於版本控制之下,不僅因為它看起來是程式碼。

版本控制系統的優點是您擁有文件歷史記錄。您可以簡單地執行一個計劃任務,例如每小時檢查一次是否進行了更改,使用,說git,並將更改應用於版本控制。

這樣,您就可以讓人們移動東西,刪除東西,不管怎樣……它仍然在版本控制中,檢索只是一個命令。

版本控制系統(如 git)的另一件事是您集成了備份機制。您可以將任何更改拉到一個或多個其他系統,當我說更改時,它實際上是完整的文件歷史記錄……包括曾經做過的任何更改。

對於文本文件,儲存成本最小,它只儲存所做的更改。

唯一不允許別人碰的就是版本控制系統。如果您使用 git,它將創建一個.git目錄,其中包含所有重要資訊……您也可以使用其他系統,如 mercurial。

如果您真的想在所做的更改時擷取所有更改,您可以嘗試使用git watch來監視 git 儲存庫,包括其中的所有子文件夾和文件,並將任何更改插入 git。甚至更好的是,gitwatch 可以將更改發送到另一台伺服器上的 git(完整備份、完整歷史記錄)。

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