Permisos del usuario apache(www-data) en linux(ubuntu) - Seguridad web
En algunas ocasiones debemos tener pensar en la posibilidad de que nuestro sistema no sea completamente seguro, y suponer qué podría suceder si algún usuario explota un payload (vulnerabilidad). Uno de los problemas que podríamos llegar a tener es que este usuario vea ciertos archivos con información delicada.
Entonces creo que la mejor solución para este problema no es cambiar los permisos específicos de una carpeta o fichero, lo cual afectará a todos los usuarios, sino utilizar una técnica mediante la cual podemos modificar los permisos un un directorio o archivo para un usuario específico.
Para esto será necesario tener instalado y habilitado ACL. Acá les dejo un enlace mediante el cual podrán cumplir con este requerimiento.
Recomiendo particularmente que se cambien los permisos para www-data de los directorios personales (/home/nombre_usuario) y principalmente del directorio /etc en el cual están alojados ciertos archivos como /etc/passwd el cual tiene información delicada. Para esto vamos a usar el siguiente comando:
setfacl -m u:www-data:0 /etc
Explicaremos su sintaxis:
setfacl -m u:usuario:permiso [archivo|directorio]
El parámetro -m simboliza que para el directorio elegido, serán modificados los permisos para tal usuario.
Despues de u: escribiremos el usuario para el cual serán modificados los permisos, en nuestro caso www-data
Despues de u:usuario: vamos a poner los permisos que queremos que sean asignados al directorio elegido para el usuario escrito anteriormente. Recordar que los permisos admitidos son:
w: write (escribir, modificar).
r: read (leer, ver).
x: execute (ejecutar).
0: ningún permiso.
Listo, hecho esto estaremos seguros que algúna vulnerabilidad de nuestro sistema no sea causa de que nuestra información sea robada. Espero haber sido de ayuda.