rsync set proprietario del gruppo, autorizzazione del gruppo


10

Voglio usare rsync per trasferire file dal mio computer a un sistema Linux remoto. Indipendentemente dalla proprietà del gruppo del file locale, voglio impostare questi valori sul lato remoto.

Se fossi sul sistema Linux remoto, potrei creare la directory e impostare la proprietà e le autorizzazioni come:

mkdir my_directory
chown :my_group my_directory
chmod 775 my_directory

Se creo la directory localmente e quindi utilizzo rsync (ricorda, non ho my_group localmente), faccio:

rsync -ae ssh --chmod=ug+rw,Dug+rwx my_directory remoteserver:dest

Funziona, ma non riesco a capire come impostare il proprietario del gruppo tramite rsync. Se lo faccio chmod g+s dest, my_directory ha il proprietario del gruppo corretto ma tutti i file all'interno hanno il proprietario del gruppo errato.


Ciao @ChrisInEdmonton, hai trovato un modo per farlo funzionare alla fine? Ora sto affrontando lo stesso problema, sto eseguendo cygwin per risincronizzare i file da Windows a una scatola di Linux ma non riesco a impostare l'ID di gruppo corretto dei nuovi file inviati attraverso: rsync -avz --delete --exclude "*.git" --chmod=ug=rwx,o=rx /cygdrive/d/projx/ john@123.123.123.123:/var/prox/I file arrivano come john: john invece di john: projx ( dove projx è il nome del gruppo)
John,

1
Ho appena trovato rsync 3.1 include --groupmap=*:group-name'.. subito dopo aver pubblicato ha.
Giovanni,

Risposte:


8

Proprio in questo momento, sto cercando un modo per farlo da solo nell'operazione rsync, al contrario di un'operazione successiva. Voglio che alcuni file non siano leggibili dal mondo e che assegnino un gruppo, limitando così l'accesso ai processi del server remoto all'interno di quel gruppo. Ma non ne ho trovato uno.

L'unica cosa che posso immaginare è:

  1. usa --delay-updates per fare in modo che i file remoti vengano assegnati in un'operazione più atomica e istantanea
  2. g + rwx, o + rwx nell'opzione rsync --chmod

e quindi eseguire:

ssh remoteserver chgrp -R {groupname} /my/dest/folder/* && \
chmod -R o-rwx /my/dest/folder/*

Sì, penso che sia quello che faremo. Sono sorpreso che non sia possibile che tu o io potremmo trovare di farlo solo con rsync, ma ehi.
ChrisInEdmonton,

6

Penso che il flag -p manchi dal tuo comando ..

--chmod

Questa opzione dice a rsync di applicare una o più stringhe "chmod" separate da virgola all'autorizzazione dei file nel trasferimento. Il valore risultante viene trattato come se fossero le autorizzazioni fornite dalla parte di invio per il file, il che significa che questa opzione può sembrare non avere alcun effetto sui file esistenti se --perms non è abilitato .


1
Il -pflag è implicitamente incluso come parte -adell'opzione (archivio).
Anthony Geoghegan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.