Tengo un servicio rsync que sincroniza archivos de una máquina remota a una máquina que los deja en una unidad de red.
Necesito los archivos copiados para asumir los permisos nativos de la carpeta de destino.
El proceso de sincronización funciona bien, pero una vez finalizado, no puedo acceder a algunas de las carpetas: permiso denegado.
Estoy conectado como administrador de dominio; tampoco me permitirá modificar ningún permiso en dichas carpetas. ¿Lo que da?
comando de ejecución:
rsync.exe -v -rlt -z --delete "src_path" "dst_path"
windows
permissions
rsync
avguchenko
fuente
fuente
Respuestas:
(de http://www.samba.org/ftp/rsync/rsync.html )
En resumen: para dar los archivos de destino (antiguos y nuevos) los permisos de origen, utilice
--perms
.Para otorgar a los archivos nuevos los permisos de destino predeterminados (sin modificar los archivos existentes), asegúrese de que la
--perms
opción esté desactivada y use--chmod=ugo=rwX
(lo que garantiza que todos los bits no enmascarados se habiliten).Si desea que este último comportamiento sea más fácil de escribir, puede definir un alias emergente para él, como colocar esta línea en el archivo ~ / .popt (lo siguiente define la opción -Z e incluye --no- g para usar el grupo predeterminado del directorio de destino):
fuente
La seguridad "posix" de Cygwin me ha causado muchos problemas con los permisos de archivos NTFS de Windows, incluso
--no-perms
con rsync.Descubrí que los archivos / carpetas recién creados no heredan correctamente los permisos predeterminados, pero cada archivo / carpeta termina con muchas
<not inherited>
entradas en la pestaña de seguridad avanzada de archivos / carpetas de Windows. (Y este problema no solo está relacionado con rsync).Encontré esta publicación relacionada y este enlace muy útil para resolver estos problemas usando la
noacl
opción en el/etc/fstab
archivo de cygwin . La desventaja de esta solución es que Cygwin pierde la capacidad de establecer permisos de archivo / carpeta, pero en muchos casos esto no es importante.(Googleando este tema probablemente encontrará referencias para configurar la variable de entorno CYGWIN = NONTSEC, pero esto es para cygwin v1.5 y no funciona en cygwin v1.7 en adelante).
fuente
En Windows con DeltaCopy podría hacer que funcione con:
Funcionó incluso con
--recursive
fuente
rsync, al menos en Cygwin tiene el siguiente interruptor:
-A, --acls preservar ACL (implica --perms)
Mi versión de Cygwin es:
CYGWIN_NT-6.3 1.7.29 (0.272 / 5/3) 2014-04-07 13:46 x86_64 Cygwin
¡Espero que esto ayude!
fuente
La respuesta mejor calificada solo funciona si está usando rsync sobre ssh en Windows. Si está usando el demonio cygwin rsync, solo usar noacl en / etc / fstab no ayuda, por cualquier razón no honra la herencia, incluso si se deshace del usuario e intenta noacl, anular, etc. Esto parece suceder si rsyncing en una unidad de nivel superior y utiliza path = / cygdrive / whatever en /etc/rsyncd.conf. En su lugar, debe hacer un punto de montaje separado en / etc / fstab y utilizarlo en su rsyncd.conf en su lugar:
en /etc/rsyncd.conf, tendrías algo como esto:
Luego tuve que reiniciar el sistema de Windows, solo reiniciar el servicio rsync solo no pareció ayudar, seguía arrojando errores chroot y chdir (a pesar de que / d_drive estaba montado y usaba chroot = false y podía escribirle). Luego, cuando se sincroniza con el sistema de Windows, use:
fuente
En el pasado, acabo de reasignar los permisos en Windows a mi usuario actual luego de usarlos
takeown
en un símbolo del sistema elevado como:takeown /f <NameOfFolder> /r /d Y
Por supuesto, si usó los
rsync
indicadores correctos en primer lugar, entonces esto es innecesario, pero si no desea volver a ejecutar losrsync
archivos que ya ha copiado, lo recomendaría.fuente
correct rsync flags
> y cuáles serían esos?Tuve este problema con
rsnapshot
, que usa rsync para la copia de seguridad. Lo anulé quitando--relative
dersync_long_args
. Después de esa carpetac
para el disco en sí con permisos extraños no se crea.fuente