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.

  • Try umask 022 before your copy. – BillThor Feb 10 '11 at 6:21

You can set the perms using the --chmod parameter e.g.


will force the permissions to be set to 755 for Directories and 644 for Files.

  • Thanks. The folder seems change to 744(drwxr--r--). Anyway, I decide to change the permission after transfer. – garconcn Feb 11 '11 at 21:42
  • 7
    The --chmod also accepts octal mode numbers, which in my opinion is easier to visualize the permission given: --chmod=D2775,F664 – Fred Wuerges Apr 23 '14 at 18:47
  • You can also use --chmod o=rX in order to automatically give folders the x flag, but omit it from files. – hachre Apr 22 '18 at 2:41
  • Do you need to specify --perms as well? – OrangeDog Sep 20 '18 at 12:17

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:


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.