Rsync de um laptop local para um VPS com propriedades corretas

2

Então, eu tenho esse fluxo de trabalho que funciona, mas é desajeitado "

RSYNC para ultrapress.co

rsync -azP --delete /Users/rocketadmin/Sites/vagrant-local/www/wordpress-default/wp-content/themes [email protected]:/var/www/ultrapress.co/htdocs/wp-content/

rsync -azP --delete /Users/rocketadmin/Sites/vagrant-local/www/wordpress-default/wp-content/plugins [email protected]:/var/www/ultrapress.co/htdocs/wp-content/

=============================================== ==============

Em seguida, o proprietário do REPAIR

sudo chown -R www-data:www-data /var/www

Eu gostaria de saber quais argumentos usar no rsync, por isso não uso minha pasta www toda vez que sincronizo Agradecemos antecipadamente por sua orientação ...

    
por Yoyo 09.04.2014 / 23:36

4 respostas

2

Você tem 3 maneiras de fazer isso:

  • Conceda acesso SSH a www-data e rsync usando o usuário www-data. Isso não é altamente recomendável, mas, se você fizer isso com muito cuidado (bloquear todo o acesso SSH, exceto do seu próprio IP, usar uma chave SSH e remover a senha do usuário www-data), também pode funcionar.
  • Crie um usuário e um grupo em seu PC local com os mesmos nomes e IDs de usuário numérico como os do servidor e certifique-se de que todos os arquivos tenham esses como proprietário antes de rsyncing (o sinalizador -a que você já usa faz isso ).
  • Crie um script de wrapper para rsync no servidor que executa o chown logo após a conclusão do rsync e, em seguida, use o argumento --rsync-path para o cliente.
por 10.04.2014 / 07:17
2

Você pode usar sticky bits para garantir que tudo o que é criado em /var/www/ultrapress.co seja de propriedade de www-data user / group.

Para fazer isso, no servidor defina estas permissões:

chown ultrapress.co www-data:www-data
chmod u+s ultrapress.co
chmod g+s ultrapress.co

Agora, sempre que um usuário criar um novo diretório ou arquivo nesse diretório, ele terá o usuário e o grupo do www-data.

Você também pode definir os bits fixos em todos os subdiretórios existentes com:

find ultrapress.co -type d -exec chmod u+s,g+s '{}' +

Ou, como alternativa, defina o bit adesivo para o diretório /var/www :

chmod u+s,g+s /var/www
    
por 10.04.2014 / 09:36
2

Se você tiver acesso a rsync v.3.1.0 ou posterior, a opção - chown deve ser o que procura:

rsync -azP --chown=www-data:www-data [src] [dst]

Observação: as opções -o e -g são necessárias para que funcione, mas, é claro, já estão incluídas por meio do -a opção que você definiu.

Mais informações podem ser encontradas por meio de uma resposta sobre uma pergunta semelhante aqui: Problemas de comando do Rsync, permissões de proprietário e grupo não mudam

    
por 06.01.2015 / 04:22
1

Minha abordagem usual ao fazer esse tipo de coisa é fazer

rsync <options> www-data@remote-host

Eu então uso a autenticação de chave SSH para www-data no servidor remoto.

Pessoalmente, também executo o script local como www-data , pois acho isso mais lógico.

    
por 10.04.2014 / 09:28