¿Qué son las ACL?

Las ACL especifican los usuarios o procesos del sistema que tienen determinado tipo de acceso y las operaciones que pueden realizar en los objetos dados: ficheros, aplicaciones, directorios. Cada entrada especifica un tema y una operación.

¿Cómo funcionan?

El sistema debe de tener habilitado las ACL, para lo cual debemos especificar si se montan de manera provisional o permanente en el fichero /etc/fstab

El sistema operativo

El sistema donde lo estoy probando

Para comprobar si las ACL están habilitadas en las particiones montadas, podemos ejecutar el siguiente comando:

tune2fs -l /dev/sda2

pero podemos acotar la información que nos muestra utilizando el comando grep en modo "pipe", esto es:

tune2fs -l /dev/sda2 | grep "Default mount options:"

tune2fs

Instalando las ACL en el sistema

sudo apt-get update

sudo apt-get install acl

Si tienes dudas de qué hacer y cómo en cuanto a la instalación de las ACL en el sistema, en este enlace puedes verlo. Además, recuerda que puedes encontrar toda la información utilizando el comando man. Por ejemplo:

man acl

man getfacl

Implementando las ACL

Para implementar las ACL en el sistema, disponemos de dos herramientas:

  1. GETFACL - Muestra información de los permisos de ficheros y carpetas.

  2. SETFACL - Establece las ACL de ficheros y directorios

  3. CHACL - Modifica las ACL de ficheros y directorios

Listar permisos de ficheros y carpetas

Con el comando getfacl podemos listar los permisos de los ficheros y carpetas. Para ello, basta con ejecutar el comando:

getfacl directorio

En mi caso, creé un directorio y agregué un fichero dentro llamado readme. Esto es:

mkdir testingACL

touch testingACL/readme

nano testingACL/readme

Y escribí un contenido cualquiera a modo de prueba.

Un modo mucho más rápido (al que debería acostumbrarme) es:

echo "Este es mi fichero de prueba" > testingACL/fichero

crear fichero con el comando echo

Por tanto, para listar el contenido de un fichero como tal hacemos:

getfacl testingACL/readme

getfacl

Otro ejemplo, donde estoy listando los permisos de /home y /etc:

getfacl

Agregar permisos a un usuario

Podemos ver las opciones del comando setfacl haciendo:

setfacl --help

Opciones de setfacl

Supongamos que queremos permitir que el usuario pepe (si no tienes otro usuario en el sistema tienes que crearlo con el comando adduser) tenga acceso de lectura y escritura al fichero readme, entonces:

sudo setfacl -m u:pepe:rw /home/punky/testingACL/readme

setfacl

¿Qué sucede? ¿Puedes visualizar el contenido de readme?

Prueba a otorgar los permisos de manera recursiva al directorio de prueba.

Last updated

Was this helpful?