Las Listas de Control de Acceso le dan más flexibilidad con los permisos del sistema de archivos Linux.
¿Estás a cargo de un servidor de archivos compartido entre varios grupos de personas, que necesitan diferentes accesos? En este tutorial repasaremos los conceptos básicos de las ACL y los emplearemos en un escenario ficticio de oficina.
¿Qué son las ACL?
Las Listas de Control de Acceso (ACLs) complementan el modelo estándar de permisos del sistema de archivos en Linux y Unix. En pocas palabras, te permiten ir más allá del concepto "usuario/grupo/otro" para crear conjuntos adicionales de permisos para archivos y directorios. También hacen cosas interesantes como aplicar automáticamente permisos a nuevos archivos y directorios. Pero primero, vamos a cubrir algunos conceptos básicos de los permisos del sistema de archivos Linux en el que las ACL trabajan junto.
Permisos Estándar del Sistema de Archivos
Para entender los permisos del sistema de archivos en Linux, primero necesitas saber que Linux es un "sistema operativo multiusuario". Esto significa que existen múltiples cuentas de usuario que esencialmente permiten a más de una persona iniciar sesión en el sistema, cada uno con sus propias libertades y restricciones.
ls -l mysupersecretfile.txt
Los archivos y directorios que los usuarios pueden modificar dependen de un par de cosas, incluyendo si el usuario es el "propietario" o si tiene los permisos apropiados a través de la pertenencia a un grupo. Ten en cuenta que el usuario root puede modificar cualquier fichero del sistema, independientemente de su propietario.
Este enfoque de los permisos del sistema de archivos funciona bien para la mayoría de las configuraciones domésticas e independientes. Por supuesto, cuando trabajes con sistemas en los que varios usuarios acceden a la misma jerarquía de archivos y debas dar acceso a ciertas personas a algunas áreas (y restringirles el acceso a otras), empezarás a entender que la metodología estándar de "1 propietario, 1 grupo" se queda un poco corta.
Cómo mejoran las ACL el modelo estándar de permisos
Las Listas de Control de Acceso añaden la capacidad de aplicar entradas de permisos a múltiples usuarios y grupos para archivos y directorios. Un ejemplo en el que las ACL son una buena opción es cuando se desea asignar un determinado permiso de usuario a un archivo que ya tiene asignados permisos específicos de propietario y propietario de grupo.
¿Qué tal un ejemplo? Digamos que tienes un archivo, informe.pdf, propiedad de un usuario, peter, con permisos de lectura+escritura. Además, has concedido la propiedad de grupo de este archivo al grupo de contabilidad. Ahora has recibido una solicitud para conceder acceso de lectura al usuario llamado lumberg.
Supongamos que utilizas el modelo de permisos estándar. He aquí algunas ideas (inútiles) para completar esta solicitud:
No puedes conceder a lumberg la pertenencia al grupo de contabilidad (eso le daría acceso a todo tipo de archivos que no debería ver).
Tampoco quieres, como práctica administrativa correcta, crear un grupo completamente nuevo con usuarios del grupo de contabilidad más lumberg, sólo para este archivo.
Especialmente no quieres abrir los permisos a todos los demás usuarios, por razones obvias de seguridad.
Cómo utilizar las ACL en Linux:
1. Verificación de Soporte de ACL:
Antes de comenzar, asegúrese de que el sistema de archivos en el que trabaja admite ACL. Los sistemas de archivos comunes como ext2, ext3, ext4 y XFS generalmente son compatibles.
2. Instalación de Herramientas Necesarias:
Para gestionar ACL, es posible que necesites instalar la herramienta acl
. Utiliza el siguiente comando según tu distribución:
sudo apt-get install acl # Para sistemas basados en Debian/Ubuntu
sudo yum install acl # Para sistemas basados en Red Hat/Fedora
3. Configuración inicial:
Asegúrese de que la partición o el sistema de archivos estén montados con la opción acl
. Puedes verificarlo utilizando el comando mount
.
4. Establecimiento de ACL:
-
Asignar ACL a un Usuario:
setfacl -m u:nombreusuario:permisos archivo/directorio
-
Asignar ACL a un Grupo:
setfacl -m g:nombregrupo:permisos archivo/directorio
-
Eliminar ACL:
setfacl -x u:nombreusuario archivo/directorio
5. Visualización de ACL:
Utilice el comando getfacl
para ver las ACL de un archivo o directorio:
getfacl archivo/directorio
Ejemplos prácticos:
1. Conceder Acceso Específico a un Usuario:
setfacl -m u:jane:rwx documento.txt
2. Restringir el acceso a un grupo:
setfacl -m g:finanzas:read,execute carpeta_privada
3. Verificar ACL:
getfacl carpeta_compartida
Control detallado con ACL en Linux
Las Listas de Control de Acceso (ACL) en Linux ofrecen un nivel adicional de control sobre los permisos de archivos y directorios. Al comprender cómo utilizar y aplicar ACL, los administradores de sistemas pueden personalizar de manera más precisa el acceso a los recursos, mejorando así la seguridad y la eficiencia en la gestión de archivos en entornos Linux. Incorpora estas habilidades a tu conjunto de herramientas de administración de sistemas y maximiza el control sobre los permisos en tu sistema Linux.