如何使用备份文件来保存ACL?


24

使用tar实用程序在备份中存储文件时,会丢失扩展的ACL。

是否有一些常用但不是很棘手的解决方案(例如:创建一个将从头重新编写ACL的脚本)以保留ACL?


1
另请参阅此重复问题
Totor

Answers:


4

使用tar

去创造:

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

要解压缩:

tar --acls -xpf backup.tar

3
tar: unrecognized option '--acls'不起作用。
maniat1k

1
Fedora具有非标准的GNU Tar补丁,包括--acls
user55149 2013年

3
在Debian中,直到jessie tar才支持--acls。(请参见Bug#732071。)该功能还可以从的软件包中获得wheezy-backports
Alastair Irvine

请注意,所述wheezy-backports版本的tar带有该--acls选项的错误。即使归档文件中没有(!),使用上述选项进行Tarball提取也会分配ACL。看这里
Digger '18

14

实际上,我认为问题不在于(标准)文件许可位,而在于扩展的 ACL信息(请参阅setfacl(1)或acl(5))。

据我所知,未经修改的GNU tar会忽略ACL信息。(RHEL 5.2附带的GNU tar 1.15.1的手册页中提到了--acls和--no-acls开关,但我没有让它们起作用。)

但是,如果您选择exustar格式,则star程序可以备份和还原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 明星至少在ubuntu中可用。


这看起来像我要寻找的东西,我将不得不对其进行研究。现在我每天需要多买几个小时;)
丝绸

3
star在Debian上不可用,并且似乎不由“团队”维护。该项目仍然存在,并且经过30多年的维护。bsdtar如果您想要其他东西,请尝试。
Totor

1
关闭belios后,您可以在这里找到它:sourceforge.net/projects/s-tar/files
Jonas Stein

9

到目前为止,我也在寻找解决方案:

首先从我的文件夹中做一个getfactl

getfacl -R /a_folder > folder.acl

然后做一个普通的焦油

tar -czvf folder.tar.gz /a_folder

当我提取它时

tar -xvf folder.tar.gz

对权限进行setfacl。

setfacl --restore=folder.acl

这对我有用。


1
谢谢。此页面上对我没有任何帮助[我真的是说真的,我什至从源代码汇编了星标,但都无法完成任务]。但这确实有效。虽然不优雅,但是做工完美。
ashishsony


2

如果您正在寻找简单易用但功能强大的解决方案,我建议您rdiff-backup

基本上,它可以将源目录复制到目标目录,但也可以保存其他信息,因此您可以及时返回到所需位置。

并且,当然,它保留符号链接,特殊文件,硬链接,权限,uid / gid所有权和修改时间。


2

我建议你用bsdtar

bsdtar 备份扩展ACL默认,它使用相同的语法GNU tar,和它产生的档案是由可读GNU tar

软件包和命令名称(在基于Debian的发行版中)为bsdtar

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

第二个(提取)命令恢复ACL。


我无法确定它是否能正常工作,即使我确定它在一段时间之前也能正常工作。提交了bug,code.google.com/p/libarchive/issues/detail?id=329
2013年

实际上也一样...我在Debian 8 Jessie上尝试过,但没有用。:(
Totor

几年来,我一直在Debian(x64,PC)上使用它(没有问题(乳清,洁西,目前在多台机器上使用))。
比纳罗斯(Binarus)

1

从tar手册页。

-p,--same-permissions,--preserve-permissions
             提取文件时忽略umask(root用户的默认设置)

改变访问权限(ACL)的实际上不是归档操作,而是解压缩它们的操作。Tar通常用于将文件从一个用户分发到另一个用户,因此认为在用户解压缩时应用用户umask较为方便。

要保留文件的先前权限,只需轻按即可。例如

直焦油:

tar xvp some-file

bz.tar:

tar xvjp some-file

gz.tar:

tar xvzp some-file

这行不通。
maniat1k

1
此外,tar会自动找出要提取的内容。无需传递“ j”或“ z”。
好人2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.