permisos predeterminados para / var / www

36

Estaba tratando de abrir un archivo y escribirlo con PHP en la /var/wwwcarpeta, pero no funcionaba, así que lo hice

sudo chmod 777 /var/www

ahora quiero establecer los permisos por /var/wwwdefecto.
¿Para qué son los permisos predeterminados /var/www?

Hossein Hosseinvand
fuente
No soy miembro de serverfault, así que no pude comentar ni votar la respuesta. Pero esta publicación realmente lo clava: serverfault.com/questions/357108/…
Donato
Intente verificar el documento dentro de la página wiki: Propiedad y permisos de archivos y directorios para contenido web.
huckbit el

Respuestas:

29

Los permisos en esta carpeta son:

chmod 755 /var/www/

y los archivos dentro de la carpeta son:

chmod 644 /var/www/file
caos
fuente
43

El permiso predeterminado para /var/wwwsí mismo es bastante estándar: propietario root:rooty mod 755.

En cuanto a todo lo que hay dentro /var/www , ese es uno de los raros directorios donde tienes el privilegio de decidir por ti mismo qué poner en él y qué permisos debe tener todo en él. Pero lo que tiene más sentido es:

  • La mayoría de los archivos deben ser editables por el usuario o grupo que más les va a escribir. Puede configurarlos para que sean propiedad de su cuenta de usuario. O configure un grupo personalizado para sus desarrolladores. O si los archivos se modificarán raramente y desea una buena seguridad, puede ir root:rooty sudo en las raras ocasiones en que se modificarán.

  • La mayoría de los archivos no deberían poder escribirse en el mundo. Por lo tanto, 644para los archivos y 755directorios es apropiado (o 664, y 775si usted quiere dar un acceso de escritura grupo).

  • Se no recomienda configurar cualquiera de que sea escribible por el servidor web, es decir www-data, con excepción de cualquier específica archivos de secuencias de comandos web para poder escribir. Si es así, es mejor configurar el usuario o grupo de esos archivos www-dataque hacer que se puedan escribir en todo el mundo. Tenga en cuenta que cada vez que el www-datausuario puede escribir en cualquier archivo dentro de la raíz web, ya sea configurando el usuario o grupo en esos archivos, o haciéndolos de escritura mundial, es un problema de seguridad potencial. World-escribible es el peor de los dos.

thomasrutter
fuente
2
Votada como la respuesta más concluyente aquí
Chris
2
Ahora, esta es una muy buena respuesta. :)
Banago
para mejorar la respuesta, considere agregar comandos para establecer los permisos apropiados
Abraham Murciano Benzadon
¿Existe una función recursiva que pueda cambiar todas las carpetas a 755 y los archivos a 644 dentro de var / www?
Matthew Semik
Sí: stackoverflow.com/questions/18817744/… (la segunda respuesta es más elegante que la IMO aceptada)
thomasrutter
9

Asegúrese de que el grupo sea www-data en '/ var / www'.

sudo chgrp www-data /var/www

Hazlo escribible

sudo chmod 775 /var/www

establecer id de grupo para subcarpetas

sudo chmod g+s /var/www

agrega tu nombre de usuario al grupo

sudo useradd -G www-data [USERNAME]
OR
usermod -a -G www-data [USERNAME]

date la propiedad

sudo chown [USERNAME] /var/www/
kamil
fuente
99
Esos no son los permisos predeterminados para / var / www, y es una muy mala idea, desde el punto de vista de la seguridad, hacer que www-data pueda escribir toda la raíz web. Solo haga esto cuando los scripts web necesiten acceso de escritura a archivos particulares, y aún así solo lo haga a esos archivos particulares, no a toda la raíz web. Y el OP no dijo que necesitaba hacer esto, de todos modos, así que esto no debería ser una recomendación en absoluto.
thomasrutter
3
También es una muy mala idea agregarse al grupo www-data y tratar a ese grupo de esa manera. ¿Dónde leíste para hacer esto? Es un consejo particularmente malo, casi malicioso. Cree sus propios grupos cuando necesite dar acceso a un grupo a algo: no reutilice los grupos no privilegiados que están destinados para uso interno de los demonios.
thomasrutter
1
@neon_overload, ¿qué recomiendas
aWebDeveloper
1
Exactamente, ¿qué recomendarías @neon_overload?
Banago
1
@Banago personnaly Recomiendo un +1 :)
kamil
-2
sudo adduser $USER www-data
sudo chown root:root /var/www


sudo chown -R $USER:www-data /var/www/*
sudo chmod -R 755 /var/www
Parmod
fuente
44
Dependiendo del contenido, puede ser dañino usar la -Rbandera aquí. Dado que el OP no usó el -Rindicador, no deberíamos recomendarlo para corregir los permisos incorrectos que crearon. ¡La -Rbandera rara vez es útil!
Zanna