Anteriormente expliqué cómo utilizar setfacl para borrar todas las entradas de una ACL en Linux mediante la opción -b. Veamos ahora cómo borrar una única entrada de una ACL, por ejemplo para el caso en el que necesitamos quitar privilegios previamente otorgados.



Pasemos directamente a un ejemplo. El directorio "images" tiene la siguiente ACL:

root@debian:/usr/local/datos/dir1# getfacl images/
# file: images/
# owner: root
# group: root
user::rwx
group::r-x
group:www-data:rwx
group:webadmin:rwx
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:www-data:rwx
default:group:webadmin:rwx
default:mask::rwx
default:other::---

Se observa que el usuario y grupo dueño del mismo es "root", pero a su vez se ha otorgado permiso de lectura, escritura y ejecución a los grupos "www-data" y "webadmin".

Por otro lado, ambos grupos "www-data" y "webadmin" tienen sendas entradas por defecto, que hacen que todo nuevo archivo o directorio herede dichos permisos.

Supongamos ahora que se necesitan quitar los permisos para el grupo "webadmin". Para ello es necesario recurrir a la opción -x. Esta opción toma como parámetro la especificación de la entrada que se desea eliminar, sin la parte que corresponde a los permisos.

De esta forma, para eliminar tanto la entrada como la ACL por defecto, se necesitan ejecutar los siguientes comandos:

root@debian:/usr/local/datos/dir1# setfacl -R -x group:webadmin ./images
root@debian:/usr/local/datos/dir1# setfacl -R -x default:group:webadmin ./images

En este caso se aplica de forma recursiva tanto para el directorio "images" como para todos sus archivos y subdirectorios. Ambos comandos eliminan las entradas correspondientes sin importar qué permisos tengan. Por ende no es relevante ni necesario que los permisos coincidan en el resto de los archivos y subdirectorios cuando se aplica recursivamente. Si encuentra una entrada que coincide la borra; sino, no es error y simplemente continúa.

Al listar nuevamente la ACL, se observa que se han mantenido el resto de las entradas intactas, sólo se han eliminado las entradas correspondientes al grupo "webadmin":

root@debian:/usr/local/datos/dir1# getfacl ./images
# file: images
# owner: root
# group: root
user::rwx
group::r-x
group:www-data:rwx
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:www-data:rwx
default:mask::rwx
default:other::---

Para más información, consultar la página de manual de setfacl:

man setfacl


Tal vez pueda interesarte


Compartí este artículo