
我想要鎖定一個文件以防止刪除,但仍然可寫入。我該怎麼做呢?
有問題的文件是 Truecrypt 卷,作為 NAS SMB 網路共享上的文件,因此我不想意外刪除它。
答案1
對於 Windows:
- 拒絕對該檔案的「刪除」權限。
- 刪除或拒絕父目錄的「刪除子項目」權限。
對於 Unix(包括 OS X):
- 刪除父目錄的「寫入」權限。
請注意,這只會防止檔案被刪除(刪除),但不會對意外截斷或被垃圾覆蓋進行任何操作。如果文件是可寫的,那麼您可以向其中寫入任何內容。
此外,檔案權限幾乎不可能在作業系統之間轉換。如果 NAS 運行 Linux,並且您嘗試在 Windows 中設定權限,最終結果可能與您的預期不同。
答案2
在 Linux 中,您可以建立指向它的硬連結。然後您可以寫入並“刪除”它,但您只會刪除目錄中的引用。另一個硬連結仍將指向檔案的內容,因此無論如何它都不會被刪除。
在 Unix 世界中,你不能「刪除」檔案。您只需減少其硬連結的數量即可。當沒有其他東西指向它時,該空間被認為是空閒的並且可以使用...
答案3
備份。您無法真正保護可寫文件免受損害即使你可以刪除。每天備份。
答案4
在像btrfs 這樣的牛文件系統上,您可以透過使用子卷+快照或cp 與--reflink=always 來實現這一點,這將有效地產生您想要的任意數量的文件,這將消耗與一個+一些開銷相同的空間量(但是如果沒有大量的副本或快照,特別是與微小的文件大小結合使用,這應該不會被注意到),直到它們被修改,在這種情況下,只有已更改的部分會單獨存儲,其餘部分仍共用。然後分別設定每個權限(為了實現您想要的效果,只需定期製作快照或具有唯讀權限的複製(並且可以選擇將其掛載到ro 或不是全部,如果它是快照,如果它是文件,請使用chattr +i (使用者可以即使有寫入權限,也不要寫入或修改文件)在一份副本上(如果您偏執的話)。