¿Qué permisos de archivo debo establecer en la raíz web?

53

Uso Ubuntu Server 10.10 y he instalado el servidor web Nginx con apt-get install nginx. Crea una página web predeterminada en /var/www/nginx-default/y ese directorio tiene los permisos drwxr-xr-x 2 root root.

Cuando accedo al sitio predeterminado en http://localhost/aparece este mensaje en la página 403 Forbidden.

¿Cómo debo configurar los permisos de archivo en la raíz de www para poder acceder de forma segura a las páginas web? ¿O hay algo más que tengo que cambiar?

Jonas
fuente
NOTA: el conjunto ruta completa a la carpeta final debe ser accesible! Ni siquiera una carpeta en el medio.
Lucio

Respuestas:

33

Por lo general, me quedo con un 755(o rwxr-xr-x) en mi raíz web, pero no creo que este sea el problema con el que se encuentra, ya que su directorio ya está configurado para eso. nginxdebería tener acceso a su directorio. La pregunta se convierte en los permisos (o existencia) del archivo al que está intentando acceder. Los archivos dentro de su directorio deberán ser legibles para que el usuario nginxse ejecute como. Por lo general, dejo estos archivos configurados en a 755(igual que el directorio). Puede cambiar todo el directorio haciendo sudo chmod -R 755 /var/www/nginx-default/.

Sin embargo, si no hay un archivo de índice en el directorio, seguirá obteniendo el mismo error. El archivo de índice se usa cuando solicita un directorio que no tiene listas de directorios habilitadas. El archivo de índice más común es index.html. Este valor predeterminado se puede editar en su configuración, sin embargo, usando algo como:

location / {
    index index.php;
}

Si desea nginxgenerar una lista de archivos en ese directorio para usted, simplemente active la indexación de directorios , así:

location  /  {
  autoindex  on;
}
Jack M.
fuente
No, tengo un index.htmlen ese directorio.
Jonas
¿Qué permisos index.htmltienes entonces?
Jack M.
Gracias, el archivo de confiugración realmente señaló /var/www/y el generado index.htmlse colocó en él, /var/www/nginx-default/así que tuve que copiar ese archivo y cp /var/www/nginx-default/index.html /var/www/después de eso pude visitar el sitio con mi navegador web.
Jonas
56

Sugeriría cambiar el grupo de su raíz web a www-data, el usuario utilizado por nginx y también php5-fpm.

Por ejemplo:

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

donde my-user es su propia cuenta (que le permite poner los archivos fácilmente en su raíz web sin sudo).

Peter Smit
fuente
Gracias, los comandos se ejecutaron sin ningún problema, pero sigo 403 Forbiddenobteniéndolo al acceder con un navegador web.
Jonas
@Jonas, sugeriría que revises tu registro de errores de nginx para ver cuál fue el problema.
Peter Smit
Gracias, encontré el error, estaba en el registro de errores. Vea mi comentario a la respuesta de Jacks.
Jonas
44
¿Qué pasa con los nuevos archivos?
mcont
@MatteoContrini utiliza chmod 2755 webdirectory/para que se almacenen con los mismos permisos y derechos
rhand