É tarde, mas hoje me deparei com essa pergunta porque a minha rsync
não tem a --usermap
opção.
Meu chown
(v. Chown (GNU coreutils) 8.13) oferece um recurse interno ( -R
) e uma --from
opção para que seu (e meu) problema também possa ter sido resolvido usando
chown -R --from=john harry /
Mais especificamente, estou migrando um servidor do OpenSuse para o debian, e o usuário e o grupo do apache2 diferem entre as distribuições. No OpenSuse, seu usuário
wwwrun (id:30)
e grupo
www (id:8)
, no debian
www-data (id: 33)
para ambos. Depois de copiar os arquivos usando
rsync -az /path/to/files me@debian:/path/to/
eu usei
chown -R --from=30 33 /path/to/files/
chown -R --from=:8 :33 /path/to/files/
na máquina de destino (debian).
Nota: rsync version 3.1.0 protocol version 31
tem o mencionado acima, por --usermap
isso, se eu tivesse, poderia ter executado todas as três etapas com um comando na máquina de origem:
rsync -az --usermap=30:33 --groupmap=8:33 /path/to/files root@debian:/path/to/
chown harry:harry
se preciso garantir que a associação ao grupo também esteja correta. Mas isso depende muito da aplicação aqui.