Cómo establecer permisos de archivo / carpeta usando Rsync de Windows a Linux

11

Quiero transferir muchos archivos / carpetas de Windows a Linux usando Rsync. En el servidor Linux (destino), quiero que el permiso de archivo se configure en 644 y el permiso de carpeta se establezca en 755. Si es posible, quiero que la propiedad se establezca en root.root para todos los archivos / carpetas. He probado la opción -p, pero no funciona. Gracias por cualquier ayuda.

garconcn
fuente
Prueba umask 022antes de tu copia.
BillThor

Respuestas:

23

Puede establecer los permisos usando el --chmodparámetro, por ejemplo

--chmod=Du=rwx,Dgo=rx,Fu=rw,Fog=r 

obligará a los permisos a establecerse en 755 para Directorios y 644 para Files.

Iain
fuente
Gracias. La carpeta parece cambiar a 744 (drwxr - r--). De todos modos, decido cambiar el permiso después de la transferencia.
garconcn
77
El --chmodtambién acepta números octales modo, que en mi opinión es más fácil de visualizar el permiso dado:--chmod=D2775,F664
Fred Wuerges
También puede usar --chmod o=rXpara dar automáticamente a las carpetas la xbandera, pero omítala de los archivos.
Hachre
¿Necesitas especificar --permstambién?
OrangeDog
9

La sintaxis de argumento --chmod mencionada anteriormente no es del todo precisa. Cuando especifica propietario, grupo u otro, y no lo precede con una "D" o una "F", lo aplicará a todos los tipos de archivos, y aplicará el último parámetro que encuentre como predeterminado. Esto explicaría por qué sus directorios salieron como 744, ya que el último parámetro en el argumento fue og = r.

Intenta esto en su lugar:

--chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r
Ned W.
fuente