Quais direitos /vol/www possui no servidor web Ubuntu?

Quais direitos /vol/www possui no servidor web Ubuntu?

Estamos implantando nosso aplicativo Rails em um servidor Ubuntu 10.04. Quando cap deploy:setup, há um erro dizendo que:

  * executing "mkdir -p /vol/www/myapp /vol/www/myapp/releases /vol/www/myapp/shared /vol/www/myapp/shared/system /vol/www/myapp/shared/log /vol/www/myapp/sha
red/pids"
    servers: ["11.15.69.45"]
Password:
    [11.15.69.245] executing command
*** [err :: 11.15.69.45] mkdir: cannot create directory `/vol/www/myapp/releases'

a saída de ls -ld /vol/www é:

drwxr-xr-x 3 root root 4096 2011-11-22 04:35 /vol/www

Que tipo de direitos adicionais precisamos atribuir no servidor web e a qual subdiretório esses direitos precisam ser atribuídos?

Responder1

Parece haver alguma confusão sobre o seu problema aqui. A resposta de Andrew aborda o problema: "o servidor da Web tem as permissões adequadas para gravar diretamente no local em que você está implantando?"

No entanto, na verdade você está tendo problemas em um estágio anterior: implantar seu código no servidor. Nesta fase, não importa tanto se oservidor webpode escrever para /vol/www, mas se ousuário com o qual você está se conectandoquando você implanta, o código tem permissões para gravar nesse diretório.

A solução de Andrew ainda se aplica basicamente, mas de maneira um pouco diferente.

Eu recomendaria uma das seguintes abordagens:

  1. Como você já configurou /vol/wwwpara ser gravável pelo www-datagrupo, basta adicionar seu usuário a esse grupo:

    sudo usermod -aG www-data your-username
    
  2. Ou você pode se tornar o proprietário e ter acesso dessa forma. Como você já configurou o acesso de grupo para o servidor web, alterar o proprietário do diretório não deve causar problemas no futuro.

    sudo chown your-username /vol/www
    

Qualquer uma dessas opções deve dar ao usuário o acesso adequado para implantar o código e também preservar o acesso do servidor web a esse diretório.

Responder2

O usuário do servidor web no Ubuntu é www-data (a menos que você esteja executando o mod_suexec). Portanto, www-data precisa de permissão de gravação em/vol/www. Uma maneira de fazer isso é tornar www-data o proprietário:

chown www-data /vol/www

Ou você pode usar a propriedade e as permissões do grupo:

chgrp www-data /vol/www
chmod g+w /vol/www

Uma terceira maneira é com ACLs:

setfacl -m u:www-data:rwx /vol/www
getfacl /vol/www   # to see the ACL grant

informação relacionada