使用什麼來備份檔案、保留 ACL?

使用什麼來備份檔案、保留 ACL?

使用 tar 實用程式在備份中儲存檔案時,會遺失擴展 ACL。

是否有一些常用且非駭客的解決方案(例如:建立從頭開始重新建立 ACL 的腳本)來保留 ACL?

答案1

實際上,我認為問題不在於(標準)檔案權限位,而是擴充ACL 資訊(請參閱 setfacl(1) 或 acl(5))。

據我所知,未經修改的 GNU tar 會忽略 ACL 訊息。 (RHEL 5.2 附帶的 GNU tar 1.15.1 的手冊頁提到了開關 --acls 和 --no-acls,但我還沒有讓它們工作。)

但是,那星星程式能夠備份和還原 ACL,如果您選擇埃克蘇斯塔格式:

star -c -p -acl artype=exustar -f archive.tar  files...
star -x -acl -f archive.tar

明星首頁:http://cdrecord.berlios.de/new/private/star.html Star 至少在 ubuntu 中可用。

答案2

我也在尋找解決方案,到目前為止我發現了這個:

首先從我的資料夾執行 getfactl

getfacl -R /a_folder > folder.acl

然後做一個常規的 tar

tar -czvf folder.tar.gz /a_folder

當我提取它時

tar -xvf folder.tar.gz

對權限進行 setfacl 操作。

setfacl --restore=folder.acl

這對我有用。

答案3

使用焦油

創造:

tar --acls -cpf backup.tar some-dir-or-file

解壓縮:

tar --acls -xpf backup.tar

答案4

我建議你使用bsdtar

bsdtar 預設備份擴充ACL,它使用相同的語法as GNU tar,並且它產生的檔案可供 讀取GNU tar

軟體包和命令名稱(在基於 Debian 的發行版下)是bsdtar

bsdtar cf archive.tar /my/folder/using/extd_acl 
bsdtar xf archive.tar 

第二個(提取)指令恢復 ACL。

相關內容