Problem:

-------

For sometime now, I have wanted to be able to rsync ACLs of files on windows machines to a Linux server.  I never saw anyone post anything about how to make it work.  I tried, but I was never able to compile on Cygwin when I patched the source with the acls.diff patch.  ./configure would error out after displaying:

 

Checking whether to support ACLS... checking for acl_get_file in -lacl...  no

checking for ACL support... no

 

This issue was referenced in this post, but I never saw a follow up or resolution:

http://www.cygwin.com/ml/cygwin/2004-01/msg01329.html

 

Solution:

-----------

Well I did some poking around the acls.diff patch and started examining the way cygwin implements ACLs to see what could be patched to make it work.  I found that cygwin ACLs are implemented using the Solaris implementation:

http://www.ee.adfa.edu.au/staff/hrp/webDesignHelp/cygwin-ug-net-nochunks.html#OV-HI-PERM

 

Corinna Vinschen also mentioned that the cygwin ACLs were modeled using Solaris ACLs and to reference the sun documentation site for implementation

http://sources.redhat.com/ml/cygwin/2001-06/msg01243.html

 

Seeing that the acls.diff patch already had all the code for doing Solaris ACLs, it struck me that maybe it might work for Cygwin.  I edited the acls.diff patch and it compiled (albeit with a few warnings).  I have since tested it using the 2.6.6 and 2.6.7 code successfully.  I was able to rsync acls intact to and from my Linux server.

 

Here is the only edit needed for acls.diff to work on Cygwin

-----------------------------------------------------------------------------------

Edit the following line

+               *solaris*)

+                       AC_MSG_RESULT(Using solaris ACLs)

+                       AC_DEFINE(HAVE_SOLARIS_ACLS, 1, [true if you have solaris ACLs])

 

to read :

+               *solaris*|*cygwin*)

+                       AC_MSG_RESULT(Using solaris ACLs)

+                       AC_DEFINE(HAVE_SOLARIS_ACLS, 1, [true if you have solaris ACLs])

 

Open Issue

----------------

1) The only issue I’ve seen so far with rsync is that setuid, setgid and sticky bits don’t get restored when restoring to windows with –-acls .  If you restore once with –acls and once more without, it restores both acls and setuid/setgid/sticky bits.

2) I also had to use the old way (autoconf and autoheader) with 2.6.7 as the ./prepare-source did not regenerate the configure file

 

Thought someone might want to test it out and merge the change into CVS.

 

 

-- 
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html

Reply via email to