Eu me deparo com um erro "Cota de disco excedida (122)" se eu usar rsync -p <args>
para copiar arquivos.
rsync -rlptD --chown username:org1 -- local/ /project/org1/
Eu gostaria de preservar a leitura e a execução de bits em arquivos e diretórios, mas forçar o destino a ter o grupo setuid g+s
nos diretórios.
O motivo para querer g+s
em diretórios é para que novos arquivos herdem a propriedade de grupo do projeto. No meu ambiente, se os arquivos nas pastas do projeto (por exemplo, /project/foo/
) forem de propriedade do meu grupo pessoal (nome do grupo == nome do usuário), me deparo com o erro de cota.
Eu dei o argumento --chown username:org1
ao rsync como uma tentativa de forçar o uso do grupo org1
, mas é insuficiente. Eu acho que há uma condição de corrida em que o rsync aplica a propriedade desejada user:group
após os arquivos temporariamente serem renomeados para o local final.
Se eu remover o -p
dos sinalizadores rsync, posso transferir sem erros, mas perco os bits de permissão da origem. Sem -p
, qualquer arquivo temporário criado pelo rsync na pasta de destino herda corretamente o grupo de projetos da pasta raiz e as subpastas herdam o grupo setuid.
Existe uma maneira de dar ao rsync uma máscara de permissões para manter? Eu preciso do bitmask 777 da fonte, mas g+s
set (incondicionalmente) para diretórios remotos.