ejecutar rsync como root pero mantener la propiedad del usuario

36

Me gustaría hacer una copia de seguridad de los archivos de usuario de un servidor a otro con rsync. pero noté que las carpetas de usuario cambian a root. ¿Cómo puedo mantener los permisos de usuario con rsync (ejecutándose por root)?

edotan
fuente
rsync debe ejecutarse como root cuando realiza una copia de la unidad y cuando copia el archivo nuevamente en la unidad. Si realiza cualquiera de los pasos como un usuario con menos permisos, los archivos raíz se degradarán a ese usuario.
Eric Leschinski

Respuestas:

46

Use la -abandera, que incluye entre otras cosas, las opciones -oy -g, que preserva a los propietarios y grupos. Esto requiere que se ejecute rsynccomo root.

Además, ver man rsync.

Sven
fuente
1
¿Eso también es posible sin ser root? ¿Existe una opción para almacenar la asignación en un archivo de sidecar separado?
thomas.mc.work
1
Perdí este comentario. No, no funciona sin ser rootporque no puede cambiar el propietario a nadie más que a su propio usuario. Un archivo de mapeo no ayudaría en absoluto con esto.
Sven
15

Mantener los permisos se logra a través del modo "archivo", -a. El ejemplo común es -avz:

rsync -avz foo:src/bar/ /data/bar

Esto garantiza que los enlaces simbólicos, dispositivos, atributos, permisos, propiedades, etc. se conserven en la transferencia. Además, la compresión se utilizará para reducir el tamaño de las porciones de datos de la transferencia.

Jeremy L
fuente
5

Si está utilizando rsync para la copia de seguridad, realmente puedo recomendarle que use rsnapshot (usa rsync). Rota las copias de seguridad y usa enlaces duros para que pueda ver las diferencias entre sus copias de seguridad diarias (pero las carpetas todavía parecen tener el contenido completo). Lo uso para hacer una copia de seguridad de los servidores de Windows y Linux en el trabajo. Perfecto para nosotros!

Simon Fredriksson
fuente