Como devo rsyncar arquivos em / var / www se eu quiser que eles sejam de propriedade de www-data?

3

Eu configurei uma nova caixa ec2 ubuntu e instalei o apache e o php5. Por padrão, você faz logon na caixa com o usuário ubuntu que tem sudo privileges.

Acredito que o apache seja executado como root e o php5 seja executado como www-data .

Eu acho que quero que todos os arquivos em /var/www sejam chown'ed para www-data:www-data e pastas definidas como 755 e arquivos como 644 - a menos que haja um problema com isso.

As coisas funcionam bem assim, mas o meu problema é que quando eu rsync arquivos do meu laptop para o servidor muda a propriedade sobre eles (e adiciona novos arquivos) como ubuntu:admin

Já passei pelo manual rsync e pesquisei no Google, e vi uma sintaxe como:

rsync -avzcO (source) (destination) --owner=www-data --group=www-data

No entanto, parece que --owner e --group não aceitam um argumento, mas devem ser usados para forçar os arquivos remotos a terem o mesmo proprietário do sistema de arquivos local se o rsync estiver sendo feito como um superusuário.

Portanto, não encontrei uma solução com o rsync para definir o usuário remoto e o grupo de arquivos durante o rsync.

O que estou fazendo de errado?

Pensamentos:

  • Talvez meus arquivos em / var / www devam ser de propriedade de ubuntu:admin ?
  • Talvez eu tenha a sintaxe do rsync errada
  • Acho que eu poderia rsync como o usuário www-data , mas isso não parece ser uma boa ideia
  • Eu poderia usar o suPHP como faria em um host compartilhado, mas isso parece um pouco problemático
por cwd 26.06.2012 / 19:45

1 resposta

7

Você não quer que eles sejam de propriedade da www-data. Inicialmente, o Apache é executado como root e, em seguida, descarta privilégios para www-data. Você não quer que o conteúdo da web seja gravável pelo usuário que possui os processos do apache. Isso cria uma vulnerabilidade de segurança.

No caso em que o Apache é atacado, o ideal é que o usuário do www-data não tenha acesso a nenhum sistema. Esta é a configuração mais segura. Se o conteúdo da Web for de propriedade da www-data, se o Apache for atacado, o invasor poderá sobrescrever qualquer conteúdo da Web.

Seu conteúdo da web deve pertencer a um usuário normal (isso exclui nobody , www-data e root ). Somente as coisas que precisam para serem graváveis pelo Apache devem ser de propriedade da www-data.

    
por 26.06.2012 / 20:11