Permisos de Usuarios y Directorios para Sitios Web en Apache
By Carlos Miranda Levy - Posted on 12 Abril 2010
Exiten dos usuarios básicos cuyos permisos debemos configurar para el adecuado fun cionamiento de los sitios web, ejecución de aplicaciones y almacenamiento de archi vos: * el usuario dueño del sitio. * el usuario Apache. En Ubuntu, y distribuciones Debian de Linux, el usuario del servidor web Apache normalmente se llama www-data y debe encontrarse en el grupo www-data. En otras distribuciones de Linux se llama nobody o apache. Este usuario www-data debe tener acceso a los directorios públicos del sitio web p ara poder leer y mostrar sus contenidos. Para facilitar la administración del sitio web, adicionamos el usuario administrat ivo al grupo www-data... sudo usermod -a -G www-data usuario-admin Si estamos accediendo el servidor como el usuario-admin, podemos verificar que h a sido adicionado al grupo escribiendo... groups Si hemos seguido las instrucciones correctamente desde el principio hasta acá, nue stro usuario debe ser miembro de sudo y www-data y el comando anterior debe list ar su nombre, seguido de ambos grupos. Si no lo hemos creado, según la estructura propuesta en el paso anterior, podemos proceder a crear el directorio public_html dentro del directorio de nuestro usua rio en /home: mkdir ~/public_html También podemos escribir mkdir /home/usuario-admin/public_html, donde usuario-admi n es el nombre del usuario con el que estamos trabajando. De acuerdo a lo propuesto y para continuar con el ejemplo del paso siguiente, cr eamos también un directorio para albergar los logs o registros del servidor. Este directorio no tiene requerimientos especiales de seguridad, ya que los registros los escribe el usuario raíz o root. Sí debemos asegurarnos de que no esté bajo la rut a de archivos visibles en la web. mkdir ~/logs A continuación, debemos asegurarnos de que nuestro directorio web public_html es p arte del grupo www-data de Apache: sudo chgrp -R www-data /home/usuario-admin/public_html Otorgamos los permisos adecuados para que el directorio web y los archivos y dir ectorios creados dentro del mismo sean visibles en la web, usamos el comando... sudo chmod -R 2755 /home/usuario-admin/public_html Si lo deseamos, podemos crear un directorio en el cual puedan almacenarse y grab ar archivos, por ejemplo con el nombre de files y otorgar los permisos adecuados . Pero este paso no es necesario ahora, ya que luego tendremos una estructura di ferente para Drupal y deberemos crear un directorio de archivos en una ubicación d istinta como veremos en el paso Instalación y configuración de Drupal. mkdir ~/public_html/files sudo chmod -R 2775 /home/usuario-admin/public_html/files El 2 hace que sea permanente el permiso para los archivos creados en el futuro, el primer 7 da todos los permisos al usuario dueño del archivo, el segundo 7 da to dos los permisos a los usuarios del grupo al cual pertenece el dueño (www-data de Apache) y el 5 indica permisos de lectura (r) y ejecución (x), pero no de escritur a (w), para el resto del mundo. Con esto hemos configurado los permisos, usuarios y grupos para mostrar y ejecut ar adecuadamente sitios web en Apache.