proprietário do grupo de rsync, permissão de grupo

10

Eu quero usar o rsync para transferir arquivos do meu computador para um sistema Linux remoto. Independentemente da propriedade do grupo do arquivo local, desejo definir esses valores no lado remoto.

Se eu estivesse no sistema Linux remoto, poderia criar o diretório e definir a propriedade e as permissões como:

mkdir my_directory
chown :my_group my_directory
chmod 775 my_directory

Se eu criar o diretório localmente e depois usar o rsync (lembre-se, eu não tenho o meu_grupo localmente), eu faço:

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

Isso funciona, mas não consigo descobrir como definir o proprietário do grupo através do rsync. Se eu fizer um chmod g+s dest, my_directory tem o proprietário do grupo correto, mas todos os arquivos dentro têm o proprietário do grupo incorreto.

ChrisInEdmonton
fonte
Olá @ChrisInEdmonton, você encontrou uma maneira de fazer isso funcionar no final? No momento, estou enfrentando o mesmo problema, estou executando o cygwin para rsync arquivos do Windows para uma caixa Linux, mas não é possível definir o ID do grupo correto dos novos arquivos enviados: rsync -avz --delete --exclude "*.git" --chmod=ug=rwx,o=rx /cygdrive/d/projx/ [email protected]:/var/prox/Os arquivos chegam como john: john em vez de john: projx ( onde projx é o nome do grupo)
John
1
Acabei de encontrar o rsync 3.1 inclui --groupmap=*:group-name'.. logo após eu postar ha.
John John

Respostas:

8

Neste exato momento, estou procurando uma maneira de fazer isso na operação rsync, por oposição a uma operação subseqüente. Desejo que alguns arquivos não sejam legíveis em todo o mundo e atribua um grupo, restringindo assim o acesso aos processos do servidor remoto dentro desse grupo. Mas eu não encontrei um.

A única coisa que posso imaginar é:

  1. use --delay-updates para tornar a colocação dos arquivos remotos em uma operação mais atômica e instantânea
  2. g + rwx, o + rwx na opção rsync --chmod

e então execute:

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

fonte
Sim, acho que é isso que vamos fazer. Estou surpreso que não tenha como você ou eu fazer isso apenas com o rsync, mas ei.
ChrisInEdmonton
6

Eu acho que a bandeira -p está ausente do seu comando ..

--chmod

Esta opção informa ao rsync para aplicar uma ou mais seqüências "chmod" separadas por vírgula à permissão dos arquivos na transferência. O valor resultante é tratado como se fossem as permissões que o lado de envio forneceu para o arquivo, o que significa que essa opção pode parecer não ter efeito nos arquivos existentes se --perms não estiver ativado .

h3
fonte
1
O -psinalizador é incluído implicitamente como parte da -aopção (arquivo morto).
Anthony Geoghegan 23/03