Esta web utiliza cookies, puedes ver nuestra política de cookies, aquí Si continuas navegando estás aceptándola

ACLs sistemas de ficheros Linux


Hay ocasiones en las que los permisos en un sistema de ficheros se nos pueden quedar cortos, mediante ACLs se consigue un control mas granular sobre el acceso a cada fichero.

Los requisitos necesarios para poder utilizar ACLs son:

  • e2fsprogs >= 1.28: eix e2fsprogs
  • Soporte en el kernel: File Systems --> Extended attributes
  • Paquete sys-apps/attr: emerge -av sys-apps/attr
  • /etc/fstab con las opciones acl, user_xattr

 

Ahora ya podemos empezar a definir ACLs, las herramientas para ello son:

  • getfacl: Consultar las ACLs de un fichero dado
  • setfacl: Modificar las ACLs de un fichero dado

 

Vamos a poner un caso real en el que se verá todo mas fácil, supongamos que disponemos de un directorio donde queremos que cierto grupo de usuarios tengan acceso de lectura y ejecución y otro grupo con permisos de lectura, escritura y ejecución.

Con este escenario nos sería imposible cumplir con las condiciones con el sistema de permisos tradicional de Linux, para resolverlo vamos a crear ACLs:

mkdir prueba
useradd -s /bin/bash user1
useradd -s /bin/bash user2
useradd -s /bin/bash user3
useradd -s /bin/bash user4
groupadd group_1
groupadd group_2
gpasswd -a user1 group_1
gpasswd -a user2 group_1
gpasswd -a user3 group_2
gpasswd -a user4 group_2

setfacl -m g:group_1:r-x prueba
setfacl -m g:group_2:rwx prueba
getfacl prueba
# file: prueba
# owner: root
# group: root
user::rwx
group::r-x
group:group_1:r-x
group:group_2:rwx
mask::rwx
other::r-x

Los permisos de user, group y other donde no se indica el usuario o grupo son los permisos mostrados por ls -la

 

Ahora si hacemos un ls -la veremos un + indicando que tiene ACLs extendidas:

drwxrwxr-x+   2 root root      4096 sep  7 17:22 prueba

 

Para borrar las ACLs:

setfacl -x g:group_1 prueba
setfacl -x g:group_2 prueba

getfacl prueba
# file: prueba
# owner: root
# group: root
user::rwx
group::---
mask::---
other::---

 

Si queremos configurar las acls extendidas a nivel de usuario se aplica del mismo modo pero cambiando el indicador g: por u:

setfacl -m u:user1:r-x prueba
getfacl prueba
# file: prueba
# owner: root
# group: root
user::rwx
user:user1:r-x
group::---
mask::r-x
other::---

Autor: Kr0m -- 06/09/2013 11:09:36