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.