I am trying to do a local rsync, from a mount point to a local folder. I need to set the owner, group, and permissions to specific settings. Here is what I am using:

 rsync -rtlv --chown=process:sambausers --chmod=D770,F770 /mnt/owncloud_mnt/Engineering/ /Drive_D/docs/Engineering_test

I end up with permissions 760 on both directories and files, and root:root on ownership (rsync is run as root).

What am I doing wrong?


  • Is the target filesystem something like NTFS, since it's "Drive_D"? – Sami Kuhmonen Aug 11 '16 at 20:22
  • target filesystem is ext4 – Roger Creasy Aug 11 '16 at 20:23
  • Does adding -p help? – Sami Kuhmonen Aug 11 '16 at 20:30
  • -p does make chmod on moved files work. I need to test to make sure it doesn't overwrite permissions on any existing files, though. Thanks. And, I still have the chown issue – Roger Creasy Aug 11 '16 at 20:41
  • 1
    For that you actually need -og I think – Sami Kuhmonen Aug 11 '16 at 20:44

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.

| improve this answer | |
  • its still unclear, because running as sudo, which im needing to do, the docs linux.die.net/man/1/rsync point out that you can only set the destination the same as the source. The problem is, i need to set it to what the logged user is, e.g. $(whoami) – Brian Thomas Jul 27 '18 at 17:04

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.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.