2010-01-23 20 views
11

Io uso cwRsync per sincronizzare alcuni file da Windows a Ubuntu. Questo processo funzionava bene su Vista, ma da quando ho aggiornato a Windows 7, continuo a ricevere problemi di autorizzazione.cwRsync ignora "nontsec" su Windows 7

Alcuni sfondi ... Ho usato per ottenere gli stessi problemi di autorizzazione su Vista, ma ciò è stato risolto utilizzando la variabile di ambiente CYGWIN=nontsec.

Il problema premission

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

Dal finestre e permessi dei file UNIX differiscono, sync'ing i file con Windows permessi non ha senso. Quello che rsync fa è impostare l'autorizzazione sul lato UNIX su 0 (d---------). Per evitare ciò, cygwin ha la variabile nontsec che gli ordina di ignorare le autorizzazioni del file Windows.

Il problema è che su Windows7, nontsec non sembra avere alcun effetto.

risposta

6

re la soluzione, ho dovuto fare una rettifica per vedere il lavoro per me - al posto del suo sito web etc/fstab, ho usato questo contenuto da l'argomento del forum si fa riferimento a:

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

Sono utilizzando il programma di installazione cwRsync 4.0.3. Sono abbastanza contento che funzioni per me, ma non posso offrire una ragione per cui non sono abbastanza familiare con la sintassi e le opzioni di fstab. Spero che aggiunga qualcosa di utile a qualcun altro.

+1

Anche la tua potrebbe essere la risposta giusta. Nemmeno io sono così familiare con le opzioni di fstab, quindi ho solo messo giù quello che ha funzionato per me. Penso che l'importante opzione da usare sia il 'noacl'. Il resto potrebbe essere diverso in base alle tue scelte specifiche. – anushr

2

Ho capito che non era Windows 7 a causare il problema. Piuttosto, era la nuova versione di cwrsync che ignorava la variabile di ambiente nontsec. Per le versioni cwRsync superiori a 1.7, è necessario utilizzare l'opzione noacl. (Vedi argomento del forum: No access to subfolders of RSYNC backup folder)

La soluzione consiste nel creare un file con l'opzione 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 

E questo è tutto! Puoi anche rimuovere l'env var CYGWIN=nontsec poiché non è più utilizzato.

2

Stavo avendo lo stesso problema di copiare dal mio webhost basato su Solaris sul mio PC locale. Le autorizzazioni del PC sono state ridimensionate quando i file sono stati copiati. Ho installato il file fstab ma non ci sono riuscito.

Alla fine mi sono reso conto che stavo effettuando una chiamata di percorso completo a rsync.exe il che significava che la mia directory corrente non stava raccogliendo la cartella etc appena creata. Per risolvere questo, ho aggiunto queste righe appena sopra la chiamata al comando rsync e ha funzionato perfettamente.

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

Ora le autorizzazioni del file sono impostate automaticamente come predefinite alle autorizzazioni della cartella principale senza problemi.

Volevo solo taggarlo in questo thread nel caso in cui qualcun altro in futuro incontrasse lo stesso problema che ero.

+0

questa aggiunta in più ha funzionato per il mio caso – justanotherdev

2

Questo ora si rivolge anche nel cwrsync FAQ: http://www.itefix.no/i2/node/11324

Posso anche segnalare la correzione nelle FAQ (e il rilancio di risposta) ha lavorato per me.

+0

Vorrei che fosse stato corretto, ma non mi aiuta. Forse il mio fstab non si trova nella posizione corretta o qualcosa del genere. –

1

Ho avuto lo stesso problema, ma nessuna delle soluzioni ha funzionato per me, finché non ho realizzato che la mia cartella di destinazione era fuori dalla cartella rsync. (Volevo rsync file da Linux a Windows.)

Ecco cosa ha funzionato per me:

  1. Creare una sottocartella etc all'interno della cartella cwRsync (cioè, dove i rsync.exe risiede).

  2. Creare un file denominato fstab (senza suffisso) all'interno di tale cartella.

  3. Inserire una riga nel file fstab, assicurarsi di avere terminazioni di linea UNIX!

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

    SET CWRSYNCHOME=<cwRsync installation path> 
    SET HOME=<Directory to save user configuration files, like ssh known_hosts> 
    
  5. Prima di iniziare rsync.exe (questo è stato il passo più importante nel mio caso):

    cd <Destination folder> 
    

La parte SET HOME è importante per SSH, creerà una sottocartella .ssh con un known_hosts file.