I want to transfer lots of files/folders from Windows to Linux using Rsync. On linux server(destination), I want the file permission set to 644, and folder permission set to 755. If possible, I want the ownership set to root.root for all the files/folders. I have tried -p option, but it doesn't work. Thank you for any help.
2 Answers
You can set the perms using the --chmod
parameter e.g.
--chmod=Du=rwx,Dgo=rx,Fu=rw,Fog=r
will force the permissions to be set to 755 for D
irectories and 644 for F
iles.
-
Thanks. The folder seems change to 744(drwxr--r--). Anyway, I decide to change the permission after transfer.– garconcnFeb 11, 2011 at 21:42
-
9The
--chmod
also accepts octal mode numbers, which in my opinion is easier to visualize the permission given:--chmod=D2775,F664
Apr 23, 2014 at 18:47 -
You can also use
--chmod o=rX
in order to automatically give folders thex
flag, but omit it from files.– hachreApr 22, 2018 at 2:41 -
1
-
@OrangeDog Yes. The correct usage is:
--perms --chmod=Du=rwx,Dgo=rx,Fu=rw,Fog=r
Apr 1 at 13:08
The --chmod argument syntax mentioned in the above is not quite accurate. When you specify owner, group, or other, and don't precede it with a "D" or a "F", it will apply that to all types of files, and it will apply the last parameter it finds as the default. This would explain why your directories were coming out as 744, since the last parameter in the argument was og=r.
Try this instead:
--chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r
umask 022
before your copy.