es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo utilizar rsync correctamente para mantener todos los permisos de archivo y propiedad?

Estoy intentando utilizar rsync para hacer una copia de seguridad de algunos datos de una computadora (PopOS! 21.04) a otra (Rocky 8.4). Pero no importa qué banderas use con rsync, los permisos de archivo y la propiedad nunca parecen guardarse.

Lo que hago es ejecutar este comando localmente en PopOS:
sudo rsync -avz /home/user1/test/ root@192.168.10.11:/root/ttt/

Y el resultado que obtengo es algo así:
[root@rocky_clone0 ~]# ls -ld ttt/
drwxrwxr-x. 2 user23 user23 32 Dec 17 2021 ttt/
[root@rocky_clone0 ~]# ls -l ttt/
total 8
-rw-rw-r–. 1 user23 user23 57 Dec 17 2021 test1
-rw-rw-r–. 1 user23 user23 29 Dec 17 2021 test2

Así que todos los archivos cambian de propiedad a user23, que es el único usuario regular en Rocky. No entiendo cómo sucede esto, con rsync estoy conectando como root en el host remoto, pero los archivos se copian como user23. ¿Por qué la bandera -a no funciona correctamente en este caso?

También he probado estas banderas:
sudo rsync -avz –rsync-path=”sudo -u user23 rsync -a” /home/user1/test root@192.168.10.11:/home/user23/rrr
Este comando no pudo copiar en el directorio raíz, así que tuve que cambiar el destino remoto a la carpeta de inicio de user23. Pero el resultado es el mismo.

Si alguien pudiera explicarme qué estoy haciendo mal y cómo hacer una copia de seguridad de archivos con rsync para que los permisos y la propiedad se mantengan igual que en la computadora local, lo agradecería mucho.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema con rsync transferir la propiedad a user23 en el host remoto se debe a que el usuario que ejecuta el comando rsync en la máquina local PopOS no es el propietario de los archivos que se están transfiriendo. Como resultado, cuando rsync copia los archivos, asigna la propiedad al usuario que inició realmente el comando.

    Para asegurarse de que se preserven los permisos y la propiedad durante la transferencia, puede utilizar la bandera -a con las opciones --no-o y --no-g. Estas opciones le indican a rsync que no transfiera la información de propiedad y grupo, respectivamente.

    Su comando rsync se vería así:

    sudo rsync -avzn --no-o --no-g /home/user1/test/ root@192.168.10.11:/root/ttt/
    

    La bandera -n se agrega para realizar una simulación del comando, sin realizar cambios reales en el destino. Esto le mostrará cuál será el resultado del comando y asegurará que sea el que desea. Una vez satisfecho con la simulación, puede ejecutar el comando sin la bandera -n para realizar la transferencia real.

    También es importante tener en cuenta que al utilizar rsync con privilegios de root, debe tener precaución y considerar las implicaciones de seguridad de transferir datos a un host remoto con acceso de root. En algunos casos, puede ser preferible transferir los datos como un usuario regular y luego utilizar sudo en el host remoto para cambiar los permisos y la propiedad según sea necesario.

Comments are closed.