¿Cómo configurar una lista de control de acceso (ACL) para controlar los permisos de los usuarios en Linux?
Con Liunx cerrado, el trabajo se vuelve muy sencillo. Puede definir permisos para cualquier usuario, grupo y otros. Esto funciona muy bien ya sea en una computadora de escritorio o en una instancia virtual de Linux con pocos usuarios, o cuando los usuarios se muestran reacios a compartir archivos entre ellos. Sin embargo, si está en una organización grande y ejecuta servicios NFS o Samba para diferentes usuarios, necesitará la flexibilidad para elegir y configurar muchas configuraciones y permisos complejos para satisfacer las diferentes necesidades de la organización.
Linux (y otros sistemas operativos compatibles con POSIX, como Unix) tienen un método para controlar permisos llamado listas de control de acceso (ACL), que son un paradigma general más que una asignación de permisos. Por ejemplo, de forma predeterminada, debe confirmar tres grupos de permisos: Propietario, Grupo y Otro. Al utilizar las ACL, puede agregar permisos a otros usuarios o grupos, no solo a "otros" o grupos cuyos propietarios no existen. Puede permitir acceso de escritura a usuarios específicos A, B y C en lugar de otorgarles acceso de escritura a todo el grupo.
ACL admite varios sistemas de archivos Linux, incluidos ext2, ext3, ext4, XFS, Btfrs, etc. Si no está seguro de si su sistema de archivos admite ACL, consulte la documentación.
Hacer que las ACL sean válidas en el sistema de archivos
Primero, necesitamos instalar herramientas para administrar las ACL.
En Ubuntu/Debian:
$ sudo apt-get install acl
En CentOS/Fedora/RHEL:
# yum - e instalar acl
En Archlinux:
# pacman -S acl
Para fines de demostración usaré la versión del servidor ubuntu, otras versiones serán similares.
Después de instalar la ACL, necesitamos activar la función ACL de nuestra partición de disco para poder usarla.
Primero, comprobamos si la función ACL está activada.
$ mount
Puedes notar que el atributo ACL en mi partición raíz está activado. En caso de que no se abra, debe editar el archivo /etc/fstab y agregar la marca ACL antes de la opción para abrir la partición acl.
Ahora necesitamos volver a montar la partición (me gusta un reinicio completo porque no quiero perder datos). Si activa la ACL para otra partición, también deberá volver a montarla.
$ sudo mount / -o remount
¡Excelente trabajo! Ahora que tenemos la ACL activada en nuestro sistema, comencemos a usarla.
Ejemplo de ACL
La ACL básica se administra mediante dos comandos: setfacl se usa para agregar o modificar ACL y getfacl se usa para mostrar la ACL asignada. Hagamos algunas pruebas.
Creé un directorio /shared para un usuario hipotético llamado freeuser.
$ ls -lh /
Quiero compartir este directorio con otros dos usuarios, test y test2, un usuario tiene permisos completos y el otro usuario tiene permisos de lectura.
Primero, configure la ACL para la prueba de usuario:
$ sudo setfacl-m u:test:rwx/shared
Ahora la prueba de usuario puede estar en el directorio /shared Cree carpetas y archivos y acceda a ellos desde cualquier lugar.
Ahora, agregamos permisos de solo lectura al usuario test2:
$ sudo setfacl -m u:test 2:rx/shared
Tenga en cuenta que test2 requiere Ejecute el permiso (x) para leer el directorio.
Permítanme explicarles el formato del comando setfacl:
-m significa modificar la ACL. Puede agregar ACLu nuevo o modificar el existente: para representar a los usuarios. Puede utilizar G para establecer permisos de grupo. Nombre de usuario de prueba: rwx necesita configurar los permisos.
Ahora déjame mostrarte cómo leer la ACL:
$ ls-LH/share
Puedes notar que hay un número después de los permisos normales. . Esto indica que la ACL se ha configurado correctamente. Para obtener más información sobre las ACL, debemos ejecutar:
$ sudo getfacl /shared
Finalmente, si necesita eliminar las ACL:
$ sudo setfacl -x u :test /share
Si desea borrar todas las entradas ACL inmediatamente:
$ sudo setfacl -b /share
Finalmente, cuando el archivo o directorio ACL está configurado para funcionar, los comandos cp y mv cambiarán esta configuración. Para cp, debe agregar el parámetro "p" para copiar la configuración de ACL. Si esto no es posible, mostrará una advertencia. mv por defecto mueve la configuración de ACL y también le mostrará una advertencia si esto no es posible.
Resumen
El uso de ACL puede brindarle más poder y control sobre los archivos que desea compartir, especialmente en servicios NFS/Samba. Además, si sus ejecutivos *disfrutan* del hospedaje, esta herramienta es imprescindible.
Lo anterior es una introducción al método de configurar listas de control de acceso para controlar los permisos de los usuarios en Linux. Dado que la configuración y el uso de ACL son complicados, los principiantes son propensos a cometer errores al usarlo. Espero que los métodos introducidos en este artículo puedan ayudarle.