使用什么来备份文件、保留 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。

相关内容