No estás usando -numeric-ids
y/o -fake-super
para sus copias de seguridad (y restauraciones). Si modificas tu rsync
Comando un poco obtendrá las asignaciones guardadas y restauradas correctamente.
En estos ejemplos, el -M
le dice a rsync
para aplicar la siguiente opción, es decir, la falsificación, en el lado remoto de la conexión. Un efecto secundario adicional es que no necesita el lado remoto (donde se almacenan las copias de seguridad) para ejecutarse como root
Esto empuja las copias de seguridad del cliente al servidor de copias de seguridad
sudo rsync -azh -e 'ssh -pNNNN' --stats --delete --numeric-ids -M--fake-super --exclude-from="${exc_path}" "${src_path}" "${dst_addr}:${dst_path}"
Esto extraería copias de seguridad del cliente (es decir, restauración)
sudo rsync -azh -e 'ssh -pNNNN' --stats --delete --numeric-ids -M--fake-super --exclude-from="${exc_path}" "${dst_addr}:${dst_path}" "${src_path}"
Y esto, ejecutado en el servidor de copias de seguridad, enviaría las copias de seguridad al cliente (es decir, restauración)
sudo rsync -azh -e 'ssh -pNNNN' --stats --delete --numeric-ids --fake-super "${dst_path}" "${src_host}:${src_path}"
Cada archivo almacena la información de su propietario individualmente, no hay una estructura de datos para indexar archivos en función de sus propietarios. Entonces, haga lo que haga, tendrá que buscar los archivos y cambiar los UID en cada uno de ellos, individualmente. Afortunadamente, eso no es muy difícil de hacer; esto debería hacer:
find "$dir" -user olduser -exec chown newuser {} +
Por supuesto, sería mejor cambiar el sistema de respaldo para almacenar (y restaurar) los UID correctos, especialmente si es posible que haya respaldado archivos pertenecientes a varios usuarios.