Backup

使用 rsync 保留所有權,無需 root

  • November 12, 2021

我想從機器執行增量備份(針對整個文件系統)。rsync這樣做會嗎,但是我還想保留文件所有權-意思是,可以恢復它。

如果不在rsync目標機器上以 root 身份執行(儲存備份),是否可以這樣做?

一些想法…

  • 有沒有辦法以允許chown非 root 使用者的方式掛載文件系統(FUSE?)?(我想可能需要noexec禁止抬高。)
  • 某種方式來儲存和恢復元數據文件而不是文件系統本身的所有權?
  • tar可以儲存文件所有權,但讓它與 rsync 或增量備份一起使用會更複雜一些。能夠像正常文件系統一樣瀏覽備份也很好。
  • 也許某種假根環境?虛擬機可以工作,但最好避免相關的維護和性能成本。

如其他答案所述,要直接保留所有權資訊,您需要對目標電腦具有 root 訪問權限。

但是,您至少有兩種解決方法可以在保留所有權的同時避免 root 訪問:

  1. 使用--fake-superrsync 選項。從手冊頁:

啟用此選項後,rsync 通過附加到每個文件的特殊擴展屬性(根據需要)保存/恢復特權屬性來模擬超級使用者活動

這意味著所有權不是直接保存在經典的 Unix 風格中,而是所有權資訊儲存在一個特殊的擴展屬性中(即:一種附加到文件的“標籤”)。還原時,rsync可以使用此 EA/tag 正確重建原始文件所有者。

  1. 不要讓 rsync 保留所有權資訊,而是使用getfacl實用程序保留它們。例如,發出getfacl -R MNTPOINT > acls.txt您有效地將所有權(和 ACL)資訊保存在文本文件中,以後可以使用該setfacl --restore命令恢復此類資訊。

引用自:https://serverfault.com/questions/755753