Permisos de los Sitios Web
Permisos de los Sitios Web
En esta sección vamos a hablar de los permisos adecuados para diversas localizaciones importantes del servidor Apache. Para esto tenemos que prestar especial atención a su estructura de directorios. Ésta puede definirse usando tres directivas de configuración, referenciando cada una de ellas al path en el sistema de ficheros donde se guardan los archivos de configuración, documentos, contenido web o scripts respectivamente. Estas directivas se encuentran en /etc/apache2/sites-enabled/000-default:
- ServerRoot: Designa el path donde están los binarios de Apache y su configuración.
- DocumentRoot: Designa el path donde están los archivos de las web que sirve Apache.
- ScriptAlias: Especifica un alias al path donde están los scripts cgi que usa Apache (ej.: Filters) o alguna de sus web.
Una instalación por defecto de Apache ya asigna unos permisos adecuados para la mayoría de localizaciones vistas. Un caso particular es la estructura de directorios que depende de DocumentRoot. Aquí estarán todas y cada una de las web que Apache sirve, pudiendo tener cada una de ellas una estructura y requerimientos de acceso particulares. En este sentido es recomendable usar estructuras de directorios que se creen según los permisos de los usuarios, de forma que sólo determinados usuarios o grupos de usuarios autorizados puedan acceder a partes concretas del servidor.
De esta forma, es frecuente crear grupos con privilegios especiales para usuarios desarrolladores web y/o de scripts, y garantizar que sólo estos usuarios puedan acceder con permisos de lectura y escritura a los directorios que tienen esta clase de contenidos. Si se agrupan en directorios concretos los ficheros correspondientes a unas funcionalidades concretas (scripts, webs, etc.), sólo tendremos que dar permisos sobre un único directorio a los usuarios que tengan derecho a hacer este tipo de actividades, facilitando así la gestión de permisos. Veremos ejemplos de esto en la actividad práctica asociada posteriormente.
Finalmente, los directorios con permisos de root deben ser independientes (encontrarse en una localización diferente) de otros directorios que requieran otros permisos. Esto ya lo hace Apache en una instalación por defecto, pero debemos asegurarnos de que ocurre así con el siguiente comando, que hace que solo root tenga acceso completo a los binarios de Apache: chown -R root:root /etc/apache2 || chmod -R 755 /etc/apache2. En la siguiente imagen pueden verse los permisos que tiene el directorio referenciado por este comando en una instalación por defecto de Apache:

La siguiente actividad práctica describe los pasos recomendados a dar en este sentido.