Vous n'utilisez pas -numeric-ids et/ou -fake-super pour vos sauvegardes (et restaurations). Si vous modifiez votre rsync commandez un peu, vous obtiendrez les mappages enregistrés et restaurés correctement.
Dans ces exemples, le -M dit rsync pour appliquer l'option suivante, c'est-à-dire le fake, du côté distant de la connexion. Un effet secondaire supplémentaire est que vous n'avez pas besoin du côté distant (où les sauvegardes sont stockées) pour s'exécuter en tant que root
Cela pousse les sauvegardes du client vers le serveur de sauvegardes
sudo rsync -azh -e 'ssh -pNNNN' --stats --delete --numeric-ids -M--fake-super --exclude-from="${exc_path}" "${src_path}" "${dst_addr}:${dst_path}"
Cela extrairait les sauvegardes du client (c'est-à-dire la restauration)
sudo rsync -azh -e 'ssh -pNNNN' --stats --delete --numeric-ids -M--fake-super --exclude-from="${exc_path}" "${dst_addr}:${dst_path}" "${src_path}"
Et ceci, exécuté sur le serveur de sauvegardes, pousserait les sauvegardes vers le client (c'est-à-dire la restauration)
sudo rsync -azh -e 'ssh -pNNNN' --stats --delete --numeric-ids --fake-super "${dst_path}" "${src_host}:${src_path}"
Chaque fichier stocke ses informations de propriétaire individuellement, il n'y a pas de structure de données pour indexer les fichiers en fonction de leurs propriétaires. Ainsi, quoi que vous fassiez, vous devrez rechercher les fichiers et modifier les UID de chacun d'eux, individuellement. Heureusement, ce n'est pas très difficile à faire; cela devrait faire :
find "$dir" -user olduser -exec chown newuser {} +
Bien sûr, il serait préférable de changer le système de sauvegarde pour stocker (et restaurer) les bons UID, surtout si vous avez peut-être sauvegardé des fichiers appartenant à plusieurs utilisateurs.