Está en la página 1de 3

21/1/2021 Comandos para la gestión de ACLs « #4sysadmins

INICIO HOW TOs SCRIPTS CERTIFICACIONES SOBRE MÍ LIBROS GNU/LINUX RECOMENDADOS

#4SYSADMINS Buscar buscar

GNU/LINUX: SYSADMINS & DEVOPS

INICIO » COMANDOS PARA LA GESTIÓN DE ACLS

Comandos para la gestión de ACLs


setfacl : Crea una lista de acceso para un determinado directorio o archivo.

setfacl [opciones] archivo

Vamos a estudiar las Listas de Control de Acceso con ejemplos prácticos, como venimos haciendo en otros comandos ‘robustos’ o de gran interés.

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 respaldo 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

De momento vamos a imaginar que tenemos un directorio ‘/home/usuarios/sistemas‘ donde diferentes usuarios pueden acceder pero en concreto
queremos que sea directorio para el grupo de sistemas. Lo primero que vamos a llevar a cabo antes de implementar ACL sobre este directorio, será
dejarlo ‘limpio’, 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

Opciones:

Eliminamos la posible ACL que ya pudiese tener el directorio: -b


Eliminamos la posible ACL por defecto que pudiese tener el directorio: -k
Aplicamos los cambios de forma recursiva: -R

Ahora con el directorio limpio 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 usaríamos ‘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.

https://nebul4ck.wordpress.com/comandos-para-la-gestion-de-acls/ 1/3
21/1/2021 Comandos para la gestión de ACLs « #4sysadmins

$ 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. Como nota añadir que el 3º campo es opcional a la hora de eliminar una ACL.

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

[Otras Opciones]:

Restaurar los permisos anteriores a partir de un archivo: –restore=FILE


Cuando usamos -R podemos incluir o no los enlaces simbólicos (respectivamente): -L o -P

getfacl : Muestra las entradas de Listas de Control de Acceso para un archivo o directorio

getfacl [opciones] archivo

Una vez terminada 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: Esta 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).

[Otras Opciones]:

Listar recursivamente: -R
Listar solo la ACL (no muestra default): -a
Listar solo la ACL default: -d
Omitir los comentarios ‘#’: -c
Mostrar en vez el nombre de usuario y grupo, los UID y GID: -n

Share this:

https://nebul4ck.wordpress.com/comandos-para-la-gestion-de-acls/ 2/3
21/1/2021 Comandos para la gestión de ACLs « #4sysadmins

 Twitter  Facebook  LinkedIn  Imprimir

Me gusta

Sé el primero en decir que te gusta.

Deja un comentario, Gracias!

Introduce aquí tu comentario...

Blog de WordPress.com.

https://nebul4ck.wordpress.com/comandos-para-la-gestion-de-acls/ 3/3

También podría gustarte