Non stai usando -numeric-ids
e/o -fake-super
per i tuoi backup (e ripristini). Se modifichi il tuo rsync
comando un po' otterrai le mappature salvate e ripristinate correttamente.
In questi esempi, il -M
dice a rsync
per applicare l'opzione successiva, ovvero la contraffazione, sul lato remoto della connessione. Un ulteriore effetto collaterale è che non hai bisogno del lato remoto (dove sono archiviati i backup) per eseguire come root
Questo invia i backup dal client al server di backup
sudo rsync -azh -e 'ssh -pNNNN' --stats --delete --numeric-ids -M--fake-super --exclude-from="${exc_path}" "${src_path}" "${dst_addr}:${dst_path}"
Ciò estrarrebbe i backup dal client (ovvero il ripristino)
sudo rsync -azh -e 'ssh -pNNNN' --stats --delete --numeric-ids -M--fake-super --exclude-from="${exc_path}" "${dst_addr}:${dst_path}" "${src_path}"
E questo, eseguito sul server di backup, invierebbe i backup al client (ovvero il ripristino)
sudo rsync -azh -e 'ssh -pNNNN' --stats --delete --numeric-ids --fake-super "${dst_path}" "${src_host}:${src_path}"
Ogni file memorizza le informazioni del proprietario individualmente, non esiste una struttura dati per indicizzare i file in base ai loro proprietari. Quindi, qualunque cosa tu faccia, dovrai cercare i file e modificare gli UID su ciascuno di essi, individualmente. Fortunatamente, non è molto difficile da fare; questo dovrebbe fare:
find "$dir" -user olduser -exec chown newuser {} +
Naturalmente, sarebbe meglio modificare il sistema di backup per archiviare (e ripristinare) gli UID corretti, soprattutto se potresti aver eseguito il backup di file appartenenti a più utenti.