27

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?

TIA

5
  • Is the target filesystem something like NTFS, since it's "Drive_D"? Aug 11, 2016 at 20:22
  • target filesystem is ext4 Aug 11, 2016 at 20:23
  • Does adding -p help? Aug 11, 2016 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 Aug 11, 2016 at 20:41
  • 2
    For that you actually need -og I think Aug 11, 2016 at 20:44

2 Answers 2

31

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.

2
  • 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) Jul 27, 2018 at 17:04
  • You also need to check that the current user has permission to perform the chmod or chown operations (check by running those commands manually).
    – Flimm
    Jul 15, 2020 at 17:56
8

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.

1
  • You also need to check that the current user has permission to perform the chmod or chown operations (check by running those commands manually).
    – Flimm
    Jul 15, 2020 at 17:57

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.