How to tell rsync do not check permissions

As long as you don't supply the -p flag permissions shouldn't be changed. If you're still not getting the permissions you expect make sure perms is off and use --chmod=ugo=rwX

For reference: http://linux.die.net/man/1/rsync

 -r, --recursive             recurse into directories
 -v, --verbose               increase verbosity
 -z, --compress              compress file data during the transfer
 -n, --dry-run               perform a trial run with no changes made

 -p, --perms                 preserve permissions
 -E, --executability         preserve executability
     --chmod=CHMOD           affect file and/or directory permissions

-p, --perms This option causes the receiving rsync to set the destination permissions to be the same as the source permissions. (See also the --chmod option for a way to modify what rsync considers to be the source permissions.)

The man page goes on to say:

In summary: to give destination files (both old and new) the source permissions, use --perms. To give new files the destination-default permissions (while leaving existing files unchanged), make sure that the --perms option is off and use --chmod=ugo=rwX (which ensures that all non-masked bits get enabled).

Side-note: If possible it might make more sense for your developer to be pushing their changes back into the repo, and have all servers use a code repo, rather then use rsync to ship files form one server to the other.


If you supply the -a flag -p is automatically included. If you specify --no-p all of the other options from -a remain intact.


I may be mistaken but without the -p it shouldnt change the permissions. (also -a which is archive would preserve it, but you're not using that either obviously)


Most options can be turned off by simply adding the --no- prefix to those options.

Example:

rsync -avz --no-perms --no-owner --no-group /local-dir/ my-server:/remote-dir/

This will disable syncing permissions, ownership, and groups.