México: (+52)5585908505, Atención: 9:00 a 18:00 hrs
Cursos y talleres en español de Internet de las Cosas   
   |   

Listas de control de acceso

Listas de control de acceso

Estas aquí:
<< Regresar

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.

Última actualización: septiembre 21, 2018

Deja un comentario