The copied code must not be modified at the destination place
Errado: os arquivos copiados devem ser modificados no local de destino, quando o próximo rsync é executado. As permissões Unix não têm como expressar "deve ser modificado apenas pelo rsync", a menos que você execute esse trabalho rsync como um usuário dedicado.
O rsync não pode excluir os arquivos porque os diretórios que os contêm são somente leitura. Para evitar isso, adicione o prefixo F
para aplicar --chmod
apenas aos arquivos regulares.
rsync --delete -a --chmod=Fa-w
Você pode ser mais bem atendido por não alterar as permissões de arquivo. Se você precisar fornecer acesso somente leitura aos arquivos, execute o trabalho rsync como um usuário dedicado e conceda a outros usuários apenas permissão de leitura para essa árvore de diretórios ( --chmod=go-w
pode ajudar). Como alternativa, exponha a árvore de diretórios em uma visualização somente leitura, por exemplo, com bindfs (consulte esta resposta para um exemplo de uso em um cenário diferente).