O comando rsync
não tem um mecanismo para lidar com isso diretamente, então eu usaria uma abordagem diferente. Eu examinaria a árvore do sistema de arquivos de origem, coletando os nomes de usuários (e grupos) de todos os arquivos presentes lá:
# List of usernames owning files under 'src'
find src -printf "%u\n" | sort -u | tee /tmp/src.users
# List of group memberships for files under 'src'
find src -printf "%g\n" | sort -u | tee /tmp/src.groups
# Copy files to target system
scp -p /tmp/src.{users,groups} dest:/tmp/
Eu, então, garantiria que todos os usuários existissem no sistema de destino, prontos para usar o rsync
. Execute estes comandos no sistema de destino:
# List "missing" users
getent passwd | cut -d: -f1 | sort -u | comm -13 - /tmp/src.users
# List "missing" groups
getent group | cut -d: -f1 | sort -u | comm -13 - /tmp/src.groups