Rsync e propriedade de arquivo - não altere a propriedade no servidor

0

Então, eu tenho um servidor web que eu rsync do meu computador pessoal, estou tendo problemas com permissões de arquivo.

Eu tentei esses dois comandos e nenhum deles me deu o que eu queria.

rsync -a --no-o --no-g --exclude='*.json' --exclude='venv/*' --exclude='*.sh' /var/www/mysite.com/ [email protected]:/var/www/mysite.com

rsync -a --exclude='*.json' --exclude='venv/*' --exclude='*.sh' /var/www/mysite.com/ [email protected]:/var/www/mysite.com

Aqui está uma explicação do que eu quero, e o que realmente acontece, eu tenho o mesmo efeito com os dois comandos mencionados anteriormente. É assim que deve ser, o índice é legível por www-data, no qual o usuário nginx é executado e gravável pelo usuário admin.

-rw-r-----  1 admin-user www-data 127 M D mm:ss index.html

Isso é o que realmente acontece depois de executar o rsync:

-rw-r-----  1 admin-user admin-user 128 M D mm:ss index.html

Isso obviamente resulta em um 404 ao visitar o site, atualmente eu tenho que executar um script que corrige as permissões depois de executar o rsync.

Então, o que eu quero é que o GID nos arquivos no servidor não seja alterado depois de eu executar o rsync, uma solução na qual eu especifique manualmente um GID não funcionará porque há outros arquivos usados por outros programas que precisam ser definido para outros grupos. Basicamente, o rsync deve modificar os dados nos arquivos, mas não deve tocar em mais nada .

Isso também não deve exigir privilégios de superusuário, pois o arquivo é gravável pelo usuário em que estou logando.

OS: Ubuntu 16.04 Server and Desktop
rsync --version (home computer): 3.1.2  protocol version 31
rsync --version (server): 3.1.1  protocol version 31
    
por asdfghikku 10.10.2017 / 11:08

1 resposta

1

Para que o rsync crie os arquivos atualizados com o mesmo grupo que eles foram originalmente atribuídos ao usuário admin, ele deve fazer parte desse grupo.

A solução foi executar

usermod -aG www-data admin-user

no servidor da web.

Eu apenas tentei e parece funcionar perfeitamente. Eu usei as seguintes opções para o rsync:

rsync -a --no-o --exclude='*.json' --exclude='venv/*' --exclude='*.sh' /var/www/site/ admin-user@remote:/var/www/site

Isso foi originalmente sugerido por @ Thomas nos comentários.

    
por 10.10.2017 / 15:37