Subject: copying NFS4 ACLs portably

From: Michael Stone <[email-masked]>
Date: Tue, 23 Jun 2015 12:02:03 -0400

I'm looking for some information before I run too far down this rathole. 
Currently cp --preserve=all will attempt to preserve both the unix modes and 
any ACL on a file. This seems to be working entirely as expected with a 
linux NFS4 client & server. If I attempt the same using a solaris 
server, the new file does not have the ACL. The problem appears to be 
that the fchmod run after the ACL is copied clears the ACL. If cp 
--preserve=xattr is used instead, then the ACL is preserved.

>From the comments in the source it looks as though the fchmod is set 
after the xattrs are copied because the unix mode could interfere with 
setting the xattrs. It's also possible that setting the mode before the 
ACL could open up more permissions than desired. OTOH, blowing the ACL 
away doesn't seem useful either. Since the issue arises on an NFS mount, 
I don't see an obvious way to tailor the behavior to the platform. 

Am I missing anything in this diagnosis? Has this already been hashed 
out (my google-fu is too weak to find relevant hits)? 

Mike Stone