Problemas de comando Rsync, permissões de proprietário e grupo não mudam


28

Estou tentando definir proprietário e grupo via rsynce não parece estar funcionando.

Este é o comando:

sudo rsync -rlptDvz --owner=cmsseren --group=cmsseren /home/serena/public_html/ -e ssh root@ip:/home/cmsseren/public_html2/

Os arquivos são sincronizados corretamente, mas não parecem alterar o proprietário e o grupo.

Respostas:


14

Parece que está funcionando corretamente. Use --ownere --grouppara preservar (não definido) os nomes do proprietário e do grupo ... o que significa que você não deseja que eles sejam alterados após a transferência.

Se você não usar essas opções, o usuário e o grupo serão alterados para o usuário que está chamando no lado receptor. Se você deseja especificar outro usuário, precisará adicionar um chowncomando ao seu script.

-o, --owner
    This option causes rsync to set the owner of the destination file to be 
    the same as  the source file, but only if the receiving rsync is being run 
    as the super-user (see also the --super and --fake-super options). Without 
    this option, the owner of new and/or transferred files are set to the invoking 
    user on the receiving side...

-g, --group
    This option causes rsync to set the group of the destination file to be the same as 
    the source file. If the receiving program is not running as the super-user (or if
    --no-super was specified), only groups that the invoking user on the receiving side
    is a member of will be preserved. Without this option, the group is set to the default
    group of the invoking user on the receiving side...

homem rsync


11
Então, como posso exibir usuários e grupos remotamente? Via ssh? Você poderia me dizer como? Eu tenho acesso root para ambos os servidores. Não quero usar chaves ssh, mas diga todas as opções que você conhece, eu aprecio isso. Obrigado pela resposta rápida
Arnoldo Bazaldua 31/12

O comando ficaria assim: ssh root@ip 'chown -R cmsseren:cmsseren /home/serena/public_html2/*'
user3150166

Eu tentei, mas não funcionou, os proprietários e usuários são os mesmos. Depois de fazer o comando que ele diz: stdin: não é um tty
Arnoldo Bazaldua

Ele funciona agora, problemas de firewall. Agora eu só tenho de automatizar a entrada de senha para ssh e rsync
Arnoldo Bazaldua

Vou postar isso em outra pergunta, obrigado pela ajuda.
Arnoldo Bazaldua 2/14

61

A versão 3.1.0 do rsync introduziu --usermape --groupmapmencionou Thomas, mas também a opção de conveniência --chown, que funciona bem para o seu cenário.

--chown=USER:GROUP
    This option forces all files to be owned by USER with group GROUP.
    This  is  a  simpler  interface  than  using  --usermap  and  --groupmap directly,
    but  it  is implemented using those options internally, so you cannot mix them.
    If either the USER or GROUP is empty, no mapping for the omitted user/group will
    occur.  If GROUP is empty, the trailing colon may be omitted, but if USER is
    empty, a leading colon must  be supplied.

    If you specify "--chown=foo:bar, this is exactly the same as specifying
    "--usermap=*:foo --groupmap=*:bar", only easier.

Além disso, as opções -oe -gsão necessárias. A exclusão deles não atualizará seu respectivo atributo, mas não produzirá erros.

rsync -og --chown=cmsseren:cmsseren [src] [dest]

Isso é mencionado indiretamente na página de manual , que afirma que a --chownopção "é implementada usando --usermape --groupmapinternamente" e:

Para que a --usermapopção tenha algum efeito, a opção -o( --owner) deve ser usada (ou implícita) e o receptor precisará estar funcionando como superusuário (consulte também a --fake-superopção).

Para que a --groupmapopção tenha algum efeito, a opção -g( --groups) deve ser usada (ou implícita) e o receptor precisará ter permissões para definir esse grupo.


5
Por que -og é necessário? Parece ilógico para mim, mas também é necessário no meu sistema.
precisa saber é o seguinte

4
@FrankScience Concordou, parece ilógico. A mesma pergunta foi feita na lista de discussão do rsync . "Eu sugeriria que os documentos --chownfariam bem em mencionar isso --owner( --super) e --groupsão necessários" .
TachyonVortex

5

A última versão (pelo menos 3.1.1) do rsync permite especificar a "propriedade remota":

--usermap=tom:www-data

Altera a propriedade para www-data (também conhecido como PHP / Nginx). Se você estiver usando o Mac como cliente, use o brew para atualizar para a última versão. E no seu servidor, baixe fontes de arquivos e depois "faça"!


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.