Cursos y talleres en español de Internet de las Cosas (IoT)
            
  Acceso a cursos  

Listas de control de acceso

Saltar al contenido principal

Listas de control de acceso

Estas aquí:

Listas de control de acceso (ACL, Access Control List) es una de las herramientas de Linux, que en su mayoría pocas veces es ocupada por parte de los usuarios medios e incluso para la mayoría de usuarios avanzados ya que las posibilidades que nos ofrecen el sistema de permisos y propietario estándar es más que suficiente. No obstante, conviene conocer el sistema de listas de control de acceso que nos permite extender estos permisos a nivel de ficheros y directorios.

Estas ACL permiten definir permisos concretos para un determinado usuario o grupo en ficheros y directorios, además, se asignan igual que los permisos estándar, con formato octal o simbólico (rwx). Básicamente, en caso de tener un fichero o directorio con unos permisos concretos determinados para su propietario y grupo, nos permite añadir usuarios o grupos extra con unos permisos completamente independientes a los definidos con los permisos estándar.

Primeramente debemos saber que nuestro sistema lo soporte y para ellos podemos saber de la siguiente manera:

tune2fs -l /dev/sda7 | grep acl
Default mount options: user_xattr acl

En caso de no aparecer la opción, tendríamos que probar con otra partición del disco. Puedes conocer tus particiones usando el comando lsblk.

lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931.5G  0 disk 
|-sda1   8:1    0   512M  0 part /boot/efi
|-sda2   8:2    0 923.1G  0 part /
|-sda3   8:3    0   7.9G  0 part [SWAP]
sr0     11:0    1  1024M  0 rom

En esta situación se encuentra en /, tune2fs -l /dev/sda2 | grep acl.

De lo contrario de deberá remontar el filesystem añadiendo la flag, para hacerlo persistente habría que añadirla en el /etc/fstab.

mount -o remount, acl /

o de la siguiente manera modificar el fstab

Antes:

/dev/sda7 / ext4 errors=remount-ro 0 1

Después

/dev/sda7 / ext4 acl,errors=remount-ro 0 1

Para ver las ACL establecidas la instrucción getfacl es la herramienta a usar, en este caso se hizo con el archivo test.sh que no tiene las acl establecidas.

getfacl test.sh
# file: test.sh
# owner: dnay
# group: dnay
user::rwx
group::r-x
other::r-x

Uso de getfacl y setfacl Mover página: Uso de getfacl y setfacl

setfacl

La instrucción setfacl es usada para configurar las acl en los archivos y directorios, podemos verla como una versión acl de la instrucción chmod.

Como ejemplo, vamos a darle al grupo testusers permiso para leer desde appdir del que es el propietario root:appgroup

ls -la | grep appdir
drwxrwxr-x 2 root appgroup 4096 May 27 10:45 appdir

Para agregar permisos, usaremos el comando setfacl

setfacl -m g:testusers:r appdir/

Desmenusemos la instrucción un poco:

-m
Le indica a setfacl que modifique la lista de acl para el directorio especificado.

g:testusers:r
Esto es en realidad la lista de control de acceso que se está estableciendo. La primera columna se especifica g para el grupo , la segunda columna es el nombre del grupo que yo quiero que los permisos que se fijará para y la última columna es los permisos quiero ese grupo tenga. En este caso el permiso de lectura .

appdir/
Este es el directorio de trabajo.

Podemos comprobar los permisos de la siguiente manera:

getfacl appdir/
# file: appdir/
# owner: root
# group: appgroup
user::rwx
group::rwx
group:testusers:r--
mask::rwx
other::r-x

O de la siguiente manera, el signo de + al final de los permisos nos indica que los acl están activos

ls -la | grep appdir
drwxrwxr-x+ 2 root appgroup 4096 May 27 10:45 appdir

Quitar grupos o usuarios de las ACL se hace de la siguiente manera:

setfacl -x g:testusers appdir/

El comando setfacl nos permite colocar los ACL y sus opciones más comunes son:

  • -m, –modify – Modifica los ACL de un archivo o directorio.
  • -x, –remove – Elimina las entradas ACLs.
  • -b, –remove-all – Elimina todas las entradas ACLs.
  • -L, –logical – Enrutamiento de los enlaces simbólicos.
  • -R, –recursive – Aplicación de los ACLs de forma recursiva.

Para el caso de getfacl

  • El comando getfacl nos permite mostrar los ACLs.
  • La opción -R permite ver los ACLs de forma recursiva.
  • La opción -L para el enrutamiento de los enlaces simbólicos.

Video sobre Listas de Control de Acceso

Video de sobre el uso de ACL.

Deja una respuesta