Portada del sitio > Sistemas > Administración > Linux > Permisos con ACL

Permisos con ACL

Jueves 13 de junio de 2013, por Aitor Roma Vázquez

Los permisos de linux están bien siempre que no dispongamos de un grupo muy grande de usuarios , si es asi se haria muy lioso ya que tendríamos un /etc/group muy grande. Una forma Elegante de arreglar este problema es usando las ACL (Listas de Control de Acceso)
A groso modo una ACL es una lista de usuarios o grupos Linux y sus correspondientes permisos de acceso que tienen a un fichero o directorio.

Instalando y activando las ACL

Para aumentar la granularidad de los permisos en tu sistema debes tener en cuenta:
El nucleo debe soportar y estar compilado para soportar atributos extendidos y ACL
El sistema de ficheros tiene de montarse con atributos extendidos y ACL
Se tienen de instalar las utilidades de espacio de usuario (chacl,getfacl y setfacl) para establecer el ACL.
Una vez claros estos conceptos pasamos a activar ACL
.
Soporte ACL del núcleo de sistema

La gran mayoría de distros actuales ya soportan ACL puedes comprobar si tienes soporte con este comando.

Como podéis tenemos activados en el kernel si no es asi recompilamos el kernel marcando estas opciones.

Soporte ACL en /etc/fstab

Una vez que tengamos soporte ACL necesitaremos configurar /etc/fstab para activar los susodichos permisos .
Los sistemas de ficheros montados con acl tendrán la palabra clave “acl” en las porciones de opciones de montaje de sus entradas en el fichero.

Como podéis ver sda6 tiene soporte acl en el punto de montaje , si quisiéramos dar soporte acl a hda1 seria tan fácil como al punto de montaje acl
/

Una vez actualizado el fichero /etc/fstab debemos remontar el sistema de fichero.
Ejemplo para hda1

Soporte ACL en el espacio de usuario

El último paso para usar ACL asegurarse de que las aplicaciónes de espació de usuario estén presentes en el sistema
En Debian o Ubuntu puedes comprobar asi

Si ACL no esta instalado puedes instalarlo desde el manejador de paquetes de tu distribución en debian por ejemplo.

Formato ACL

Linux soprta 2 tipos básicos de ACL:
ACL de control de directorios y ficheros
ACL de directorio (Mascaras) ACL que toman por defecto los ficheros creados en ese directorio.
La ACL se representa por tres campos separados por “:”
Campo 1
Entrada
“u” Ususario
“g” Grupo
“o” Otro
“m” Mascara
Campo 2
El segundo campo esta formado por:
UID (ID numérico de usuario)
GID (ID numérico de grupo)
Vacío (Asume UID,GID del Creador)
Campo 3
El tercer campo es el de acceso y puede ser representado de 2 maneras.
Cadena estándar RWX (las cadenas se pueden remplazar por – sino queremos dar acceso de ese tipo)
Cadena simbólica + ^
Herramientas
chacl : Permite cambiar,examinar o eliminar ACL
getfacl : Permite examinar acl para encontrar archivos o directorios
setfacl : Establece ACL a fichero o directorio.
Mostrar ACL
Para el ejemplo usare un directorio con archivos que he creado con touch.

La acl por defecto para el fichero lerele es esta

La acl para el directorio el qual no se le ha asignado coje los de umask.

Establecer ACL

Hay tres maneras de establecer un ACL
Usando el comando setfacl el qual sobrescribe qualquier ACL anterior.
Usando el comando setfacl con la opción -m (Modifica ACL)
Usando chacl para modificar una ACL existente.
En esta ocasión mostrare como se cambian las acl con chacl , ya que este no sobrescribe la ACL existente, y ademas proporciona algo mas de información de como realmente funcionan las acl
Ejemplo
Añadiremos al usuario aitor como alguien que puede leer el fichero lerele , usaría chacl (cambiar la ACL) del siguiente modo:

Esta es la forma en la que se ve una acl en la vida real , el hecho de que sea una comando tan largo es que se debe definir los puntos ya nombrados anteriormente el propietario de fichero, grupo propietario y otros
para entendernos mejor la porción u::rw,g::r–,o::— es la ACL existente y la porciónu:aitor:r–,m::rw- especifica el nuevo usuario el nuevo usuario que quiero añadir a dicha acl y la mascara de derechos efectivos cuando se añada.
La mascara de derechos efectivos es la unión de todos los permisos ya existentes de UGO para un fichero o directorio. esta se tiene al añadir un usuario a la ACL.
Para comprobar que hemos sido añadidos a la acl usaremos

Ahora que ya sabemos como funciona acl podriamos poner que aitor tenga permisos de lectura y escritura a lerele

como veis le hemos añadido permisos de escritura

¿Un mensaje, un comentario?

moderación a priori

Este foro es moderado a priori: su contribución sólo aparecerá una vez validada por un/a administrador/a del sitio.

¿Quién es usted?
Su mensaje

Para crear párrafos, deje simplemente líneas vacías.