Hace años que abandoné esta sección que denominé «Links», y ahora encontré una buena razón para retomarla… mi trabajo con ACLs =)
En GNU/Linux la asignación de permisos a archivos y directorios se realizó históricamente con los permisos estándar Unix. El sistema de permisos es una de las primeras cosas que se enseñan en cualquier tutorial o manual de este sistema operativo, ya que son un concepto nuevo para casi cualquier usuario desktop Windows (donde los permisos suelen estar ocultos para el usuario…).
Los permisos Unix se administran por usuario, grupo y otros, y es posible asignar lectura, escritura y ejecución (rwx), además de algunos bits adicionales como sticky bit, set user id y set group id.
Esta forma de asociar permisos con archivos y directorios es suficiente para la gran mayoría de los casos, pero se queda corto cuando hay varios usuarios y grupos en juego, y se desea mayor granularidad.
Una forma bien conocida (al menos para cualquier estudiante de computación) de asignar permisos es utilizar listas de control de acceso (Access Control Lists – ACLs). Las ACLs permiten asignar permisos a listas de usuarios o grupos, en lugar de asignar permisos a sólo un usuario o grupo en particular, como sucede en el sistema Unix tradicional. Esta es la forma en que se asignan los permisos en la familia Windows NT.
Si bien GNU/Linux implementa POSIX ACLs desde hace años, no son tan utilizadas entre los linuxeros, y pocas veces mencionadas en los manuales introductorios. Dado que se utiliza poco, no hay muchas herramientas gráficas que lo implementen (una es eiciel), y por lo tanto la mejor manera es hacerlo por consola. Las herramientas utilizadas para setear y obtener las ACLs son setfacl y getfacl, y vienen en el paquete acl.
Para poder utilizar ACLs, el sistema de archivos debe poseer esta capacidad, y la partición debe ser montada con la opción acl. Casi todos los filesystems modernos la implementan, por lo que no deberían tener problemas con ello, sólo es cuestión de modificar el /etc/fstab para que se monte con la opción correspondiente.
Lo bueno es que si se activa el uso de POSIX ACLs, todavía es posible utilizar el sistema Unix tradicional, dado que, por compatibilidad, las mismas se crearon con esto en mente.
A continuación les dejo una interesante lista de páginas donde se explica el uso de ACLs en GNU/Linux. Anímense, que una vez que se acostumbran, son fáciles de administrar!
– POSIX Access Control Lists on Linux. Completísimo paper donde se discute el uso de ACLs en sistemas tipo Unix, describiendo el estandar POSIX ACLs, el orden en que se evalúan los permisos, ejemplos, análisis de performance, el uso en sistemas de archivos de red NFS y Samba. Es un buen punto de partida.
– Using ACLs with Fedora Core 2 (Linux Kernel 2.6.5). Muy buen artículo sobre el uso de ACLs, con varios escenarios como ejemplo para ver mejor su funcionalidad. Si bien el artículo asume el uso de Fedora, sirve para cualquier distribución.
– Linux ACL (Access Control Lists). Tutorial práctico sobre el uso de ACLs en Linux.
– Samba-3: Windows file and directory. Descripción del uso de ACLs en Samba.
– ACL(Access Control List) Configuration in Debian. Pequeño artículo sobre la configuración de ACLs en debian.
Espero que les sea de utilidad ^_^