Para establecer los permisos en un sitio web, siempre es recomendable
estudiar bien lo que recomienda la documentación de las aplicaciones que
deseamos instalar.

En Debian, por motivos de seguridad los permisos predeterminados para
/var/www suelen ser 755 para los directorios y 644 para los archivos, y el
propietario suele ser root. Estos deberían ser los permisos asignados por
defecto cuando se crean carpetas o archivos en este directorio, si es que
no se ha alterado el umask (que normalmente suele ser 022).



Aunque los servidores web suelen utilizar el usuario www-data para operar,
un detalle en el cual no siempre se repara es que uno puede aumentar la
vulnerabilidad de un sitema al ejecutar comandos como este:


# chown -R www-data:www-data /var/www/misitioweb



El problema es que si un atacante consigue explotar una vulnerabilidad en
el servidor web que le permita ejecutar comandos, como el usuario www-data
sería el propietario de "misitioweb" con todo su contenido, el atacante
podría modificar todo un sitio web. De hecho, en un servidor web solo deben
darse permisos de escritura o de ejecución cuando sea imprescindible,
limitándose a los directorios o archivos específicos que realmente lo
requieran. Por ese mismo motivo, este otro comando también suele ser
potencialmente riesgoso:

# chmod -R 755 /var/www/misitioweb



Obviamente, este comando actuará de manera recursiva, cambiando los
permisos no solo a este directorio y sus directorios, sino también a todos
los archivos que estos contengan (haciendo que sean ejecutables, algo que
suele ser innecesario y podría explotarse para ejecutar código malicioso).

Si por algún motivo es necesario cambiar los permisos de manera recursiva
en el directorio /var/www probablemente sería mejor utilizar algo como
esto:



# find /var/www -type d -print0 | xargs -0 chmod 755

# find /var/www -type f -print0 | xargs -0 chmod 644



Aun así habría que tener la precaución de excluir los archivos que
contengan información sensible, como nombres de usuario y contraseñas, etc.


En mi opinión, para establecer permisos de escritura o ejecución en
cualquier carpeta o archivo bajo /var/www es mejor utilizar los comandos
getfacl y setfacl, contenidos en el paquete acl. Estos comandos permiten
establecer permisos específicos sobre un directorio o archivo para un
determinado usuario, sin necesidad de cambiar el propietario.


Saludos, Hugo


______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l

Responder a