Answers:
使用tar
去创造:
tar --acls -cpf backup.tar some-dir-or-file
要解压缩:
tar --acls -xpf backup.tar
tar: unrecognized option '--acls'
不起作用。
--acls
实际上,我认为问题不在于(标准)文件许可位,而在于扩展的 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中可用。
star
在Debian上不可用,并且似乎不由“团队”维护。该项目仍然存在,并且经过30多年的维护。bsdtar
如果您想要其他东西,请尝试。
到目前为止,我也在寻找解决方案:
首先从我的文件夹中做一个getfactl
getfacl -R /a_folder > folder.acl
然后做一个普通的焦油
tar -czvf folder.tar.gz /a_folder
当我提取它时
tar -xvf folder.tar.gz
对权限进行setfacl。
setfacl --restore=folder.acl
这对我有用。
我建议你用bsdtar
。
bsdtar
备份扩展ACL默认,它使用相同的语法如GNU tar
,和它产生的档案是由可读GNU tar
。
软件包和命令名称(在基于Debian的发行版中)为bsdtar
。
bsdtar cf archive.tar /my/folder/using/extd_acl
bsdtar xf archive.tar
第二个(提取)命令恢复ACL。
从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