Eu assumi incorretamente que um rsync
push / pull sem o -p
sinalizador funcionaria de forma semelhante a git
push / pull e que novos arquivos teriam permissões totais menos o umask
.
No entanto, mesmo sem o sinal -p
, rsync
ainda preservará as permissões do arquivo de origem. O -p
sinaliza meramente rsync
para (tentar) ignorar umask
do receptor.
Como por man rsync
:
New files get their "normal" permission bits set to the source file's permissions masked with the receiving end's
umask
setting, and their special permission bits disabled except in the case where a new directory inherits asetgid
bit from its parent directory.
Melhor ainda, há uma sugestão simples de como criar um sinalizador que ignora as permissões de origem:
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). If you'd care to make this latter behavior easier to type, you could define apopt
alias for it, such as putting this line in the file~/.popt
(this defines the-s
option, and includes--no-g
to use the default group of the destination dir):rsync alias -s --no-p --no-g --chmod=ugo=rwX
You could then use this new option in a command such as this one:
rsync -asv src/ dest/
(Caveat: make sure that
-a
does not follow-s
, or it will re-enable the--no-*
options.)
Eu acho que vou fazer isso!