2010-01-23 18 views
11

Utilizo cwRsync para sincronizar algunos archivos de Windows a Ubuntu. Este proceso solía funcionar bien en Vista, pero desde que me actualicé a Windows 7, sigo recibiendo problemas de permisos.cwRsync ignora "nontsec" en Windows 7

Algunos antecedentes ... Lo usé para obtener los mismos problemas de permisos en Vista, pero eso se resolvió usando la variable de entorno CYGWIN=nontsec.

El problema premission

rsync: failed to modify permissions on xxx: Permission denied (13) 

Desde las ventanas y los permisos de archivo UNIX difieren, sync'ing archivos con permisos de Windows no tiene sentido. Lo que hace rsync es establecer el permiso en el lado de UNIX en 0 (d---------). Para evitar esto, cygwin tiene la variable nontsec que le indica que ignore los permisos del archivo de Windows.

El problema es que en Windows7, nontsec parece no tener ningún efecto.

Respuesta

6

re su solución, tuve que hacer un ajuste para ver que funcione para mí - en lugar de su contenido etc/fstab, que utiliza este contenido desde el tema del foro se hace referencia a:

none /cygdrive cygdrive binary,posix=0,user,noacl 0 0 

estoy usando el instalador cwRsync 4.0.3. Me alegra que funcione para mí, pero no puedo ofrecer una razón por la cual no estoy lo suficientemente familiarizado con la sintaxis y las opciones de fstab. Con suerte, agrega algo útil a otra persona.

+1

La suya también podría ser la respuesta correcta. Tampoco estoy tan familiarizado con las opciones de fstab, así que dejé todo lo que funcionó para mí. Creo que la opción más importante de usar es 'noacl'. El resto puede ser diferente según tus elecciones específicas. – anushr

2

Descubrí que no era Windows 7 el que causaba el problema. Más bien, era la nueva versión de cwrsync que ignoraba la var. De entorno nontsec. Para las versiones de cwRsync superiores a 1.7, debe utilizar la opción noacl. (Véase el tema del foro: No access to subfolders of RSYNC backup folder)

La solución consiste en crear un archivo con la opción fstabnoacl:

# In this example, my cwRsync dir is located at: "C:/Program Files (x86)/cwRsync" 
# Filename: "C:/Program Files (x86)/cwRsync/etc/fstab" 
C:/Program\040Files\040(x86)/cwRsync/ntfs override,binary,noacl 0 0 
C:/Program\040Files\040(x86)/cwRsync/bin /usr/bin ntfs override,binary,noacl 0 0 

Y eso es todo! También puede eliminar CYGWIN=nontsec env var ya que ya no se usa.

2

Estaba teniendo este mismo problema al copiar de mi servidor web basado en Solaris a mi PC local. Los permisos de PC se agitaron cuando se copiaron los archivos. Configuro el archivo fstab pero no voy.

Al final me di cuenta de que estaba haciendo una ruta de acceso completa a rsync.exe, lo que significaba que mi directorio actual no recogía la carpeta etc. que acababa de crear. Para resolver esto, agregué estas líneas justo encima de la llamada al comando rsync y funcionó perfectamente.

SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC 
c: 
cd %CWRSYNCHOME% 

Ahora mis permisos de archivos están correctamente predeterminados a los permisos de la carpeta principal sin problemas.

Solo quería etiquetar esto en este hilo en caso de que alguien más en el futuro se encuentre con el mismo problema que yo.

+0

esta adición adicional funcionó para mi caso – justanotherdev

2

Esto ahora también se aborda en el FAQ cwRsync: http://www.itefix.no/i2/node/11324

también puedo reportar el arreglo en el FAQ (Levante y de respuesta) trabajó para mí también.

+0

Ojalá esto lo solucionó, pero no me está ayudando. Tal vez mi fstab no está en la ubicación correcta o algo así. –

1

Tuve el mismo problema, pero ninguna de las soluciones funcionó para mí, hasta que me di cuenta de que mi carpeta de destino estaba fuera de la carpeta rsync. (Quería rsync archivos de Linux a Windows.)

Esto es lo que funcionó para mí:

  1. Cree un subdirectorio etc dentro de la carpeta cwRsync (es decir, donde los rsync.exe reside).

  2. Cree un archivo denominado fstab (sin sufijo) dentro de esa carpeta.

  3. Inserta una línea en ese archivo fstab, ¡asegúrate de tener terminaciones de línea UNIX!

    none /cygdrive cygdrive binary,posix=0,user,noacl 0 0 
    
  4. Set medio ambiente:

    SET CWRSYNCHOME=<cwRsync installation path> 
    SET HOME=<Directory to save user configuration files, like ssh known_hosts> 
    
  5. Antes de comenzar rsync.exe (este fue el paso más importante en mi caso):

    cd <Destination folder> 
    

La parte SET HOME es importante para SSH, creará una subcarpeta .ssh allí con un known_hosts archivo.