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