DO NOT REPLY [Bug 6701] New: permission of attributes are not preserved

samba-bugs at samba-bugs at
Wed Sep 9 02:21:49 MDT 2009

           Summary: permission of attributes are not preserved
           Product: rsync
           Version: 3.1.0
          Platform: Other
        OS/Version: Solaris
            Status: NEW
          Severity: minor
          Priority: P3
         Component: core
        AssignedTo: wayned at
        ReportedBy: cavalli at
         QAContact: rsync-qa at

This relates to fake-super on solaris, but actually is more general because
xattr are files so have ownership and permission which is not preserved by  -X

Suppose I have this situation

root at opensolaris:~/src/rsync# runat /data/cavalli/test ls -l
total 2
-rw-rw---- 1 cavalli other  13 2009-09-08 08:14 rsync.%stat
-r--r--r-- 1 root    root   84 2009-09-08 08:14 SUNWattr_ro
-rw-r--r-- 1 root    root  408 2009-09-08 08:14 SUNWattr_rw

Then root does a rsync -XX. We end up with

-rw-rw---- 1 root root  13 2009-09-08 08:14 rsync.%stat

So that user cavalli does no longer see fake-super information in the "backup
of the backup"...

In this case a quick solution could be creating the xattr with read permission
for "other", but the problem is more general.

I think that -X beavhiour should be:

- for every user preserve permissions 
- for root preserve permission and ownerships

diff --git a/lib/sysxattrs.c b/lib/sysxattrs.c
index d55ee0c..c9a38cd 100644
--- a/lib/sysxattrs.c
+++ b/lib/sysxattrs.c
@@ -191,7 +191,7 @@ int sys_lsetxattr(const char *path, const char *name, const 
        int attrfd;
        size_t bufpos;
-       mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP;
+       mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH;

        if ((attrfd = attropen(path, name, O_CREAT|O_TRUNC|O_WRONLY, mode)) <
                return -1;

Configure bugmail:
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.

More information about the rsync mailing list