[Spanish] Cómo establecer los permisos de la carpeta www en Ubuntu

Uno de los primeros pasos que todo desarrollador web realiza al instalar apache, es establecer los permisos de esta carpeta para garantizar que tanto el usuario personal como el usario del servidor web, tengan acceso a ella y puedan realizar modificaciones. Para tal fin usaremos el comando setfacl

El primer paso en este procedimiento es verificar los permisos actuales de la carpeta

david@mypc /var % ls -l | grep www
drwxrwx--- 14 root root 4096 mar 11 11:45 www

La carpeta www es propiedad del usuario root por lo cual mi usuario “david” no tiene permiso de acceso a la carpeta

david@mypc /var % cd www
cd: permission denied: www

Por medio del comando setfacl (Set File Access Control Lists) lograremos que tanto mi usuario (david) como el usuario del servidor apache (www-data) tengan todos los permisos sobre esta carpeta sin importar los permisos genéricos mostrados inicialmente.

Primero vamos a revisar que permisos ACL tiene la carpeta usando el comando getfacl

david@mypc /var % getfacl www
# file: www
# owner: root
# group: root
user::rwx
group::rwx
other::---

La carpeta www no tiene aún ningún ACL asignado, así que procederemos a darle todos los permisos a mi usuario y al usuario apache. Este comando requiere permisos de superusuario y debe ejecutarse de forma recursiva para que aplique a todos los archivos y directorios internos

david@mypc /var % sudo setfacl -Rm u:david:rwx,u:www-data:rwx www

Un dato importante es que no se pueden dejar espacios en blanco entre los diferentes usuarios reflejados en el comando

Revisamos nuevamente los ACL del archivo www

david@mypc /var % getfacl www
# file: www
# owner: root
# group: root
user::rwx
user:www-data:rwx
user:david:rwx
group::rwx
mask::rwx
other::---

En este momento ambos usuarios tienen todos los permisos de acceso sobre la carpeta www y sus descendientes.

El último paso es definir los permisos por default de la carpeta, de tal forma que toda carpeta o archivo nuevo que se cree, “herede” los mismos permisos que aplicamos ahora.

david@mypc /var % sudo setfacl -Rd u:david:rwx,u:www-data:rwx www

Verificamos nuevamente los ACL de la carpeta

david@mypc /var % getfacl www
# file: www
# owner: root
# group: root
user::rwx
user:www-data:rwx
user:david:rwx
group::rwx
mask::rwx
other::---
default:user::rwx
default:user:www-data:rwx
default:user:david:rwx
default:group::rwx
default:mask::rwx
default:other::---

Y listo, nuestra carpeta web está lista para usarse.

So, what do you think?

This site uses Akismet to reduce spam. Learn how your comment data is processed.