linux – Otorgar permisos de escritura a www-data group

Pregunta:

Estoy creando un sitio web y parte de la función es escribir datos generados por el usuario con php. Estoy usando nginx en Ubuntu 13.04. Por el momento, solo estoy probando y todo se sirve a través de nginx en locahost.

Mi script php no puede escribir el archivo de texto (aunque puedo hacerlo manualmente) y creo que es un problema de permisos para escribir en mi directorio /var/www/example.com/public_html.

Por el momento, yo (iain) soy dueño de este directorio, pero parece que tendría más sentido transferir la propiedad del directorio / var / www y todo lo que hay dentro de él al usuario de www-data (¿o debería ser un grupo?) Y agregarme a el grupo de datos www. ¿Es la siguiente la forma correcta de hacer esto?

useradd -G www-data iain
chown -R www-data:www-data /var/www/example.com
chmod 775 /var/www

Entonces, ¿esto significa que cualquier persona del grupo www-data ahora puede leer, escribir y ejecutar en / var / www?

Respuesta:

Primero, useradd crea un nuevo usuario. Como ya existe (iain), desea llamar a usermod lugar. Entonces eso sería:

sudo usermod -aG www-data iain
addgroup www-data

(tenga en cuenta la -a en los servidores basados ​​en Debian (Ubuntu incluido) que lo agregará a ese grupo y mantendrá su membresía en otros grupos. Olvídelo y pertenecerás solo al grupo www-data; podría ser una mala experiencia si uno de ellos era wheel. En los servidores de tipo SUSE, la opción es -A lugar de -aG así que lee man usermod cuidado para hacerlo bien).

En segundo lugar, no desea que apache tenga acceso rw completo a /var/www : esto es potencialmente una brecha de seguridad importante. Como regla general, permita solo lo que necesite y nada más ( principio de privilegio mínimo ). En este caso, necesita apache ( www-data ) y usted ( www-data group) para escribir (y leer) en /var/www/example.com/public_html , entonces

sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chmod -R 770 /var/www/example.com/public_html

Editar : para responder a su pregunta original, sí, cualquier miembro de www-data ahora puede leer y ejecutar /var/www (porque el último bit de sus permisos es 5 = read + exec). Pero debido a que no ha usado el -R , eso se aplica solo a /var/www , y no a los archivos y subdirectorios que contiene. Ahora, si pueden escribir es otro asunto y depende del grupo de /var/www , que no ha configurado. Supongo que normalmente es root:root , así que no, (probablemente) no pueden escribir.

Editar el 22-06-2014 : se agregó una nota de que la opción -aG es válida en servidores basados ​​en Debian. Aparentemente, varía con la distribución, así que lea man detenidamente antes de ejecutar.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım