<div dir="ltr"><br><div><div dir="ltr"><div>Hello,</div><div><br></div><div>I currently try to 
copy a directory locally between two ext4 filesystems while preserving 
permissions and ACLs using the -aAX options. Under some conditions, 
rsync does not copy the posix permissions completely, it changes the 
group::rwx to a group::--- permission. The latest rsync available on 
Debian Jessie is 3.1.1, but the changelog for 3.1.2 and 3.1.3 did not 
seem to mention such a bug being fixed.</div><div><br></div><div>As far as I tried, this bug stops occurring when I:</div><div>* remove the sticky bit from skel/subdir ("chmod -t")<br></div><div>* remove the rwx mask from skel/subdir ("setfacl -x m::"), which setfacl creates when adding the user object permission<br></div><div><br></div><div><br></div><div>Here an example:<br></div><div><span style="font-family:monospace"></span><br><span style="font-family:monospace">// OS: Debian GNU/Linux 8 (jessie)<br>// apt list: rsync/oldstable,now 3.1.1-3+deb8u1 amd64 [installed,automatic]<br></span></div><div><span style="font-family:monospace"><br></span></div><div><span style="font-family:monospace">// long command:<br></span></div><div><span style="font-family:monospace">// 1. remove skel3/<br>// 2. recreate skel3/ from skel/ using rsync<br>// 3. diff the acls on the subfolder<br></span></div><div><br><span style="font-family:monospace"></span></div><div><span style="font-family:monospace">// first: without sticky bit<br></span></div><div><span style="font-family:monospace">root@:/etc# rm skel3 -r ; rsync -aAX skel/ skel3 ; diff -y <(getfacl skel/subdir/) <(getfacl skel3/subdir)<br># file: skel/subdir/                                        | # file: skel3/subdir<br># owner: skeluser                                               # owner: skeluser<br># group: skelgroup                                              # group: skelgroup<br>user::rwx                                                       user::rwx<br>user:skeluser:rwx                                               user:skeluser:rwx<br>group::rwx                                                      group::rwx<br>mask::rwx                                                       mask::rwx<br>other::---                                                      other::---<br>default:user::rwx                                               default:user::rwx<br>default:user:skeluser:rwx                                       default:user:skeluser:rwx<br>default:group::---                                              default:group::---<br>default:mask::rwx                                               default:mask::rwx<br>default:other::---                                              default:other::---<br><br></span></div><div><span style="font-family:monospace">// then: with sticky bit<br></span></div><div><span style="font-family:monospace">root@:/etc# chmod +t skel/subdir/<br>root@:/etc# rm skel3 -r ; rsync -aAX skel/ skel3 ; diff -y <(getfacl skel/subdir/) <(getfacl skel3/subdir)<br># file: skel/subdir/                                        | # file: skel3/subdir<br># owner: skeluser                                               # owner: skeluser<br># group: skelgroup                                              # group: skelgroup<br># flags: --t                                                    # flags: --t<br>user::rwx                                                       user::rwx<br>user:skeluser:rwx                                               user:skeluser:rwx<br>group::rwx                                                    | group::---<br>mask::rwx                                                       mask::rwx<br>other::---                                                      other::---<br>default:user::rwx                                               default:user::rwx<br>default:user:skeluser:rwx                                       default:user:skeluser:rwx<br>default:group::---                                              default:group::---<br>default:mask::rwx                                               default:mask::rwx<br>default:other::---                                              default:other::---</span></div><div><span style="font-family:monospace"><br></span></div><div><span style="font-family:monospace">// directory above:</span></div><div><span style="font-family:monospace">root@:/etc# getfacl skel<br># file: skel<br># owner: root<br># group: root<br>user::rwx<br>group::r-x<br>other::r-x<br></span></div><div><br></div><div>Best regards</div></div><div dir="ltr"><div>Phillip Kuhrt</div></div>

</div></div>