38

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

38

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
13

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
  • 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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .