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.