Quais permissões de arquivo devo definir na raiz da web?

53

Eu uso o Ubuntu Server 10.10 e instalei o servidor web Nginx apt-get install nginx. Ele cria uma página da Web padrão em /var/www/nginx-default/e esse diretório tem as permissões drwxr-xr-x 2 root root.

Quando acesso o site padrão, http://localhost/recebo esta mensagem na página 403 Forbidden.

Como devo definir as permissões de arquivo na raiz www para garantir o acesso seguro às páginas da web? Ou há algo mais que eu precise mudar?

Jonas
fonte
NOTA: o todo caminho completo para a pasta final deve ser acessível! Nem mesmo uma pasta no meio.
Lucio

Respostas:

33

Normalmente, mantenho um 755(ou rwxr-xr-x) na minha raiz da web, mas não acho que esse seja o problema que você está enfrentando, já que seu diretório já está definido para isso. nginxdeve ter acesso ao seu diretório. A pergunta se torna as permissões (ou a existência) do arquivo que você está tentando acessar. Os arquivos em seu diretório precisarão ser legíveis pelo usuário que nginxestá executando como. Normalmente, deixo esses arquivos definidos como a 755(o mesmo que o diretório). Você pode alterar o diretório inteiro fazendo sudo chmod -R 755 /var/www/nginx-default/.

Se não houver um arquivo de índice no diretório, no entanto, você ainda receberá o mesmo erro. O arquivo de índice é usado quando você solicita um diretório que não tem as listagens de diretório ativadas. O arquivo de índice mais comum é index.html. Esse padrão pode ser editado em sua configuração, no entanto, usando algo como:

location / {
    index index.php;
}

Se você deseja nginxgerar uma lista de arquivos nesse diretório, basta ativar a indexação de diretórios , da seguinte maneira:

location  /  {
  autoindex  on;
}
Jack M.
fonte
Não, eu tenho um index.htmlnesse diretório.
Jonas
Que permissões você index.htmlpossui, então?
Jack M.
Obrigado, o arquivo de confirmação realmente apontou /var/www/e o gerado index.htmlfoi colocado, /var/www/nginx-default/então eu tive que copiar esse arquivo para cp /var/www/nginx-default/index.html /var/www/depois visitar o site com o meu navegador.
Jonas
56

Eu sugeriria mudar o grupo do seu webroot para www-data, o usuário usado pelo nginx e também pelo php5-fpm.

Por exemplo:

sudo chown -R "$USER":www-data /webdirectory
sudo chmod -R 0755 /webdirectory

onde my-user é sua própria conta (o que permite que você coloque os arquivos facilmente em seu webroot sem o sudo).

Peter Smit
fonte
Obrigado, os comandos foram executados sem problemas, mas eu ainda recebo 403 Forbiddenao acessá-lo com um navegador da web.
Jonas
@ Jonas, sugiro verificar o seu log de erro do nginx para ver qual era o problema.
Peter Smit
Obrigado, encontrei o erro, estava no log de erros. Veja meu comentário à resposta de Jacks.
Jonas
4
E os novos arquivos?
Mcont
O @MatteoContrini usa chmod 2755 webdirectory/para que eles sejam armazenados com as mesmas permissões e direitos
rhand