Haciendo un directorio escribible por el servidor web

Para hacer que un usuario web de apache pueda escribir en el archivo debemos de darle ciertos permisos.Usaremos Apache como ejemplo de webserver y un archivo de sistema tipo UNIX.
Lo primero de todo, el webserser, Apache en nuestro caso, es un programa que se ejecuta en el background ( en el fondo).Apache es iniciado por el usuario root del sistema en la forma standar.Llamaremos este proceso inicial como "proceso de root"
El proceso de root lanza varios procesos hijos q manipula los pedidos de los clientes
Por razones de seguridad, los procesos hijos no son ejecutados como usuarios root por motivos de seguridad, son ejecutados con otro usuario con minimos provilegios.
Usualmente este usuario es apache (Centos) o wwww-data (ubuntu), etc .
Para encontrar como este es llamado en tu sistema, tipea este comando:

$ ps -ef | grep httpd | grep -v grep
root 1926 1 0 Dec03 ? 00:00:55 /usr/sbin/httpd.worker
apache 2608 1926 0 14:31 ? 00:00:06 /usr/sbin/httpd.worker
apache 22192 1926 0 01:05 ? 00:00:02 /usr/sbin/httpd.worker


Asi, en mi caso los procesos hijos son ejecutados por el usuario "apache".
Esto puede tambien ser determinado por el usuario y grupo directivas dentro de la configuration del archivo del Apache localizado en :
/etc/httpd/conf/httpd.conf:
User apache
Group apache

Asi para hacer que nuestro directorio sea escribible por el webserver nosotros tenemos que configurar que el propietario del directorio o grupo a Apache y habilitar el permiso de escritura

Los comandos para configurar que un directorio pertenezca al grupo de Apache (apache or www-data o cualquier usuario que es usado para lanzar los procesos hijos) y habilitar los permisos de escrituras para el grupo

chgrp apache /path/to/mydir
chmod g+w /path/to/mydir

En muchos casos, en hosting compartidos o alquilados, no es posible cambiar el propietario de archivos o directorios.En tales casos se puede configurar el permiso de escritura para todos (otros)

chmod o+w /path/to/mydir

Comentarios