On Sun, 2011-06-05 at 13:50 +0200, Roberto Ragusa wrote:
> On 06/05/2011 12:32 PM, Ralf Ertzinger wrote:
> > Hi.
> >
> > On Sun, 05 Jun 2011 11:39:02 +0200, Roberto Ragusa wrote
> >
> >> - rsync -a FAILS!
> >
> > rsync supports -X (for xattr) and -A (for ACLs), both must be
> > given explicitly.
>
> Thanks, rsync -X actually works (and I wonder why -X is not included
> in -a, just as for cp).
>
> I see tar has --xattrs. With tar -c it works (the tar file contains the
> string with the value), but tar -x does not recreate the xattr.
>
> By using strace I see that rsync does
>
> open(".a.eWMgCy", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = 1
> fchmod(1, 0700) = 0
> close(1) = 0
> lstat64(".a.eWMgCy", {st_mode=S_IFREG|0700, st_size=0, ...}) = 0
> llistxattr(".a.eWMgCy", 0x82bb0c0, 1024) = 0
> lsetxattr(".a.eWMgCy", "security.capability", "\x01\x00\x00\x02\x00
> \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 20, 0) = 0
> lsetxattr(".a.eWMgCy", "user.qqq", "www", 3, 0) = 0
> utimensat(AT_FDCWD, ".a.eWMgCy", {UTIME_NOW, {1307265135, 0}},
> AT_SYMLINK_NOFOLLOW) = 0
> chmod(".a.eWMgCy", 0755) = 0
> rename(".a.eWMgCy", "a") = 0
>
> while tar -x does
>
> mknod("a", 0700) = 0
> setxattr("a", "user.qqq", "www", 3, 0) = 0
> open("a", O_WRONLY|O_CREAT|O_LARGEFILE, 0700) = 4
> close(4) = 0
> utimensat(AT_FDCWD, "a", {{1307271119, 468295223}, {1307265135, 0}}, 0) = 0
> setxattr("a", "user.qqq", "www", 3, 0) = 0
> chown32("a", 0, 0) = 0
> chmod("a", 0755) = 0
>
> Why is tar not working? ("getcap a" prints nothing)
>
Simply because tar does not store all the extended attributes. Just
limited set of them. At the moment security.capability is not among
them. Feel free to report a bugzilla against rawhide tar...
You may also consider using star... where is the support for extended
attributes present for longer time (and upstream).
Greetings,
Ondrej Vasik
--
devel mailing list
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/devel