LinuxParty
Implementar Listas de Control de Acceso
En este artículo vamos a aprender que son las ACL y como implementarlas de una forma sencilla. Conoceremos sus comandos, posibilidades y usos.
Notas del autor:
- Agradeceré infinitamente vuestro apoyo en www.facebook.com/4adminsys
- Para ampliar los conocimientos podéis pasaros por www.nebul4ck.wordpress.com
Comandos ACL
Los comandos que usaremos para crear, modificar, eliminar o consultar las ACL son:
setfacl : Crea una lista de acceso para un determinado directorio o archivo.
getfacl: Consulta las propiedades de una ACL
Ejemplo práctico
IMPORTANTE: Antes de crear una lista de acceso, por ejemplo del directorio '/home/usuarios/sistemas' es conveniente realizar un respaldo de los permisos existentes, para que en caso de que queramos anular la ACL en un futuro, podamos usar este backup
Crear un backup de los permisos para '/home/usuarios/sistemas'
$ getfacl -R /home/usuarios/sistemas > /home/usuarios/Desktop/persistemas.bak
Restaurar los permisos de un directorio en caso de que apliquemos una ACL errónea
$ setfacl --restore=permsistemas.bak
Con el backup realizado, procederemos a implementar la ACL. Lo primero será dejar 'limpio' el directorio, es decir, anularemos otras posibles listas de acceso que este pudiese tener o incluso si tuviese una ACL por defecto. Esto lo haremos con el siguiente comando:
$ sudo setfacl -b -k -R /home/usuarios/sistemas
-b : Eliminamos la posible ACL que ya pudiese tener el directorio
-k : Eliminamos la posible ACL default que pudiese tener el directorio
-R : Aplicamos los cambios de forma recursiva
Ahora con el directorio limpito vamos a crear la ACL, acción que podremos realizar mediante el uso de dos parámetros: 's' o 'm'. Si quisiéramos crear una ACL eliminando una ya existente usariamos 's', si por el contrario queremos modificar una ACL o crearla si no existe usaremos 'm'. Nosotros usaremos 'm' ya que antes hemos eliminado todo lo relacionado con ACL en el directorio.
$ sudo setfacl -R -m g:sistemas:rw
Aquí igualmente hemos aplicado de forma recursiva (-R) el comando. Vamos a desglosar la cadena 'g:sistemas:rw' para ver que significado tiene cada uno de sus campos.
- Indicar si se trata de una ACL de usuario (u) o de grupo (g): En nuestro caso, de grupo
- El segundo campo es el nombre del grupo (podemos pasar el GID igualmente): sistemas
- El tercer y ultimo campo son los permisos de la ACL, podemos pasar en valor octal como con chmod: rw
Ahora vamos a darle al grupo de explotación permisos de lectura y acceso para el subdirectorio /home/usuarios/sistemas/prod pero además algo que no hemos hecho en la anterior ACL es crearla como default, esto implica que cada subdirectorio o archivo que se cree bajo ./prod heredará los permisos, muy útil para no tener que andar modificando la ACL continuamente (cada vez que se cree contenido). Usaremos la opción '-d'
$ sudo setfacl -d -R -m g:explotacion:rx /home/usuarios/sistemas/prod
Una vez terminadas la tarea de setear la ACL es conveniente usar el comando getfacl para comprobar como ha quedado todo:
$ sudo getfacl /home/usuarios/sistemas
# file: home/usuarios/sistemas
# owner: nebul4ck
# group: nebul4ck
user::rwx
group::r-x
group:sistemas:rw-
mask::rwx
other::r-x
Nota: Si hemos usado la opción '-d' (default) getfacl mostrará además estás entradas:
default:user::rwx
default:group::r-x
default:group:sistemas:rw-
default:mask::rwx
default:other::r-x
Donde:
- user: permisos para nebul4ck
- group: permisos del grupo nebul4ck
- group:sistemas: permisos rw- para el grupo sistemas (habrá tantas entradas como ACL hayamos asignado)
- mask: Esa entrada se puede manipular con setfacl y permite especificar el máximo de permisos que se pueden asignar en dicho fichero con las ACLs de usuario y grupo.
- Other: Es la entrada de los permisos generales o globales del modelo UGO (usergroupother).
Puede contratar ExtreHost para temas profesionales con sus servidores. No lo dude, contáctenos.

-
LinuxBiz
- Se lanzó Red Hat Enterprise Linux 9.5 con la función de sistema Sudo y Podman 5.0
- AlmaLinux OS 9.5 ya está disponible como alternativa gratuita a Red Hat Enterprise Linux 9.5
- Cómo la comunidad de AlmaLinux apoyó la compatibilidad binaria de RHEL
- Instalar un ERP y CRM para tu Pyme, paso a paso
- Cómo enviar/notificar mensajes a iOS y Android desde la consola de Linux
- Zeit: una herramienta GUI para programar trabajos Cron y At en Linux
- Se piden más trabajos con talento open source: un nuevo informe de la Fundación Linux muestra que faltan talentos por cubrir
- Corea del Sur apuesta por el Software Libre y migrará de Windows a Linux
- Las 15 mejores herramientas de recuperación de datos de Linux: la elección de los profesionales
- 9 herramientas de productividad para Linux que merecen su atención
- Más poder en tu terminal con Tmux
- Generar y entregar informes de actividad del sistema usando los conjuntos de herramientas de Linux
- Las 10 mejores distribuciones Linux para el servidor para 2019
- Cómo desarrollar su propia distribución de Linux personalizada desde cero
- 5 ventajas que tiene LibreOffice sobre Microsoft Office