Backup
使用 rsync 保留所有權,無需 root
我想從機器執行增量備份(針對整個文件系統)。
rsync
這樣做會嗎,但是我還想保留文件所有權-意思是,可以恢復它。如果不在
rsync
目標機器上以 root 身份執行(儲存備份),是否可以這樣做?一些想法…
- 有沒有辦法以允許
chown
非 root 使用者的方式掛載文件系統(FUSE?)?(我想可能需要noexec
禁止抬高。)- 某種方式來儲存和恢復元數據文件而不是文件系統本身的所有權?
tar
可以儲存文件所有權,但讓它與 rsync 或增量備份一起使用會更複雜一些。能夠像正常文件系統一樣瀏覽備份也很好。- 也許某種假根環境?虛擬機可以工作,但最好避免相關的維護和性能成本。
如其他答案所述,要直接保留所有權資訊,您需要對目標電腦具有 root 訪問權限。
但是,您至少有兩種解決方法可以在保留所有權的同時避免 root 訪問:
- 使用
--fake-super
rsync 選項。從手冊頁:啟用此選項後,rsync 通過附加到每個文件的特殊擴展屬性(根據需要)保存/恢復特權屬性來模擬超級使用者活動
這意味著所有權不是直接保存在經典的 Unix 風格中,而是所有權資訊儲存在一個特殊的擴展屬性中(即:一種附加到文件的“標籤”)。還原時,
rsync
可以使用此 EA/tag 正確重建原始文件所有者。
- 不要讓 rsync 保留所有權資訊,而是使用
getfacl
實用程序保留它們。例如,發出getfacl -R MNTPOINT > acls.txt
您有效地將所有權(和 ACL)資訊保存在文本文件中,以後可以使用該setfacl --restore
命令恢復此類資訊。