Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Listas de Control de Acceso (ACLs) para ext2/ext3 (I)

Kernel
Por iarenaza
departamento hasta-el-infinito-y-mas-alla , Sección Tecnología
Puesto a las Sun Oct 13th, 2002 at 09:57:08 PM CET

Una de las características que se echan en falta en los sistemas Linux actuales, especialmente en entornos corporativos, es la posibilidad de especificar los permisos de acceso a los ficheros con mayor granularidad. Los sistemas Linux siguen el modelo de permisos Unix tradicional, segmentando el tipo de acceso en tres categorías:

  1. El propietario del fichero
  2. El grupo al que pertenece el fichero
  3. El resto de usuarios del sistema que no están en ninguna de las dos categorías anteriores.

Sin embargo, estas tres categorías se revelan insuficientes en una gran cantidad de situaciones, donde deseariamos poder especificar permisos diferenciados para varios usuarios o grupos determinados.

 


Aquí es donde entran en juego los permisos basados en Listas de Control de Acceso, más conocidas como ACLs. En este sistema de permisos los ficheros no tienen un juego fijo de permisos (como en el modelo tradicional, que tiene tres permisos y sólo tres), sino que los permisos del fichero son en realidad una lista de Entradas de Control de Acceso (o ACEs). Cada una de estas ACEs contiene un par (usuario/grupo, permiso) que indica un tipo de acceso determinado para un usuario o grupo, y el conjunto de todas ellas forman la ACL que marca el tipo de acceso permitido en un fichero.

Este sistema es el utilizado entre otros, por los sistemas de ficheros NTFS (de Windows NT y sucesores), el sistema UFS de Solaris y el sistema HFS de HP-UX.

Hay un dato que se suele desconocer sin embargo y es que el sistema de ficheros ext2, desde su diseño original, previó la inclusión de este tipo de sistemas de control de acceso y estaban incluídos los enganches (hooks) necesarios para su implementación posterior, de forma 100% transparente y compatible hacia atrás.

Pues bien, desde hace varios años existen varios proyectos para incorporar los sistemas basados en ACL en los diferentes sistemas de ficheros soportados por Linux, y especialmente en ext2 (por ser el tipo de sistema de ficheros más extendido hasta el momento en los sistemas Linux).

Uno de ellos es el proyecto RSBAC, cuyos objetivos son mucho más ambiciosos (realmente mucho más, ya que su objetivo es conseguir un sistema Linux con un nivel de seguridad equivalente al nivel B1 del antiguo Libro Naranja -TCSEC-), pero que incorpora también una implementación 100% operativa de ACLs para ext2.

Otro de ellos es el proyecto Linux Extended Attributes and Access Control Lists, que originalmente tenía como objetivo incorporar el sistema de ACLs al sistema de ficheros ext2 (y mas tarde también ext3 cuando este apareció). Posteriormente, al ser el sistema de ACLs elegido por el equipo de Samba para su implementación de ACLs sobre ext2 (para poder ofertar recursos compartidos via SMB con ACLs al igual que los sistemas Windows NT y posteriores) ha sido el candidato oficial de ACLs en ext2 para su inclusión definitiva en el kernel. De hecho, desde la versión 2.5.2x forma parte del kernel estándar.

Para ello se ha hecho un esfuerzo de coordinación y estandarización bastante grande con los desarrolladores de otros sistemas de ficheros como XFS y JFS (principalmente, aunque no sólo con estos) que también soportaban ACLs desde su origen. La idea es ofertar una capa abstracta común en el VFS (Virtual File System) de forma que las aplicaciones y el resto del sistema operativo trabajen por igual, y con la misma API, con cualquiera de los sistemas de ficheros que soportan ACLs (ext2/ext3, XFS, JFS, ReiserFS, etc.).

El resultado: ya están disponibles los sistemas de ficheros con ACLs en el núcleo estándar, en su versión de desarrollo. Sin embargo, no es necesario esperar hasta la estabilización del actual núcleo de desarrollo para disfrutar de las ventajas de las ACLs. Todos los sistemas de ficheros mencionados arriba están disponibles bien como parte del kernel estándar, bien como parches para las versiones estables del núcleo. Y son parches con calidad de producción, con lo cual son perfectamente utilizables en entornos cuya estabilidad sea una condición indispensable.

En el caso del sistema de ficheros ext2/ext3, que son el objetivo del proyecto Linux Extended Attributes and Access Control Lists, las ACLs son incluso transparentes para aquellos núcleos que no lleven incorporados los parches necesarios, de forma que si accidentalmente se arranca el sistema con un núcleo sin soporte para ACLs no ocurre absolutamente nada, salvo obviamente que no disponemos de las características avanzadas de las ACLs y sólo tenemos a nuestra disposición el modelo de permisos tradicional.

A condición de que tengamos un ejecutable de e2fsck que soporte ACLs, incluso si el núcleo no lo soporta, podemos ejecutar e2fsck sobre el sistema de ficheros de forma segura. En caso de tener un e2fsck sin soporte de ACLs, el único problema que tendremos en este caso es la pérdida de las ACLs, pero nunca la pérdida de datos.

Las versiones de e2fsprogs (el paquete donde se incluyen las utilidades de ext2), a partir de la versión 1.28 ya incorporan soporte de serie para Atributos Extendidos (Extended Attributes o EAs), que es la característica del sistema de ficheros necesaria para poder implementar las ACLs. En el sitio del propio proyecto se pueden encontrar parches para algunas versiones anteriores de e2fsprogs, en caso de ser necesario.

En la segunda parte de este artículo describiremos como se puden incorporar todos esos parches a nuestro sistema para poder disfrutar de las ACLs en los sistemas de ficheros ext2/ext3, y ver algunos ejemplos de su uso.

Saludos. Iñaki.

< Buscador sobre GNU/Linux en castellano (5 comments) | The Code (IV) (2 comments) >
Enlaces Relacionados
· proyecto RSBAC
· Linux Extended Attributes and Access Control Lists
· Samba
· parches para algunas versiones anteriores de e2fsprogs
· More on Kernel
· Also by iarenaza

Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

Ver: Modo: Orden:
Listas de Control de Acceso (ACLs) para ext2/ext3 (I) | 3 comentarios (2 temáticos, 1 editoriales, 0 ocultos)
Más mejoras en ext2/ext3 en los núcleos 2.5.x (4.77 / 9) (#2)
por dardhal a las Mon Oct 14th, 2002 at 10:05:24 AM CET
(Información Usuario)

Antes de nada, gracias a iarenaza por otro de esos artículos a los que (tan bien) nos tiene acostumbrados. Me gustaría aportar mi pequeño granito de arena a su magnífica información, y es que además del soporte de ACL/EA (Extended Attributes) para ext2/ext3 en los núcleos 2.5.x, en fechas recientes se ha publicado (y aceptado) un parche para el mismo sistema de ficheros que implementa lo que llaman "HTree index".

Lo anterior no es más (ni menos) que almacenar las entradas de un directorio (es decir, las referencias a los archivos y directorios que contiene) no en una lista lineal, sino en un hash. La idea es mejorar enormemente la eficacia en las operaciones sobre directorios que contienen muchas entradas. Si alguno intentó un simple "ls" en un directorio que contiene 50.000 archivos, sabrá que dicha operación es lenta, y consume mucho tiempo de CPU.

Con la implementación de HTree index que Ted Ts'o, uno de los pocos kernel hackers que están en ello desde el principio (y hombre de confianza de Linus, lo que casi garantiza su inclusión en el núcleo), ha enviado, según dicen las operaciones son mucho más rápidas incluso para directorios con número de entradas reducido, y es tanto más ventajoso cuanto más "largo" es el directorio. Para directorios pequeños parece que la penalización es despreciable. La ventaja de todo esto es que se puede "migrar" un sistema de ficheros a "HTree" sin reformatear ni perder datos, de manera muy similar a como se puede migrar de ext2 a ext3.

La única pega es que se necesitan utilidades "e2fsprogs" actualizadas y que de momento los parches del núcleo sólo están para 2.5.x, y al menos en un primer momento hubo problemas con fallos en tiempo de ejecución, y alguien perdió datos.

Y como siempre suelo acabar estos comentarios, más detalles acerca de lo que se hace en los núcleos en desarrollo, an la página que Guillaume Boissiere mantiene con el Linux Kernel 2.5 Status. Por cierto, que estamos a apenas una semana del plazo para el feature freeze efectivo, y a quince días del plazo fijado para ello hace ya tiempo. Y como no podía ser de otra forma, a Linus se le acumula el trabajo (resumen de lo que dice: End result: 1MB worth of compressed patches - in four days).



Da gusto (3.50 / 2) (#3)
por jcantero (jcantero@agujero-negro.escomposlinux.org) a las Mon Oct 14th, 2002 at 11:58:34 AM CET
(Información Usuario) http://www.escomposlinux.org/jcantero/

Da gusto leer a los que seguís las novedades del kernel, porque la verdad que no todos podemos. ;)

--
"Papá, ¡Internet es más que una red pornográfica global!" -- Lisa Simpson
[ Padre ]


 
Listas de Control de Acceso (ACLs) para ext2/ext3 (I) | 3 comentarios (2 temáticos, 1 editoriales, 0 ocultos)
Ver: Modo: Orden:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda