#4sysadmins

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.

$ 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
Anuncios

Deja un comentario, Gracias!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: