How do I set destination permissions with rsync (chown chmod)

Solution 1:

rsync needs to be told that you want to set the permissions and owner/group information. It would be logical to assume that having --chmod or --chown would tell that but they don't.

For permissions to propagate you need the --perms or -p flag and for owner/group you need --owner --group or -og flags for the owner/group/permission information to be set.

The documentation is a bit unclearly written so it isn't clear how the permissions are handled with different combinations or if existing files are affected.

Solution 2:

I found this StackOverflow version of the same question to be more helpful, because it seems Roger and I have rsyncs with different preferences for the format of --chmod (mine is 3.1.3 from a Debian package).

As Sami said, rsync needs to be told "permissions", so either include -p, or have it implicitly included by using -a. But then, to get the command to actually run, you need (e.g. for directories 755 and files 644) --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r, rather than the "D755,F644" format.