Manual de FreeBSD
Anterior | Capítulo 14. Seguridad | Siguiente

# 14.12. Listas de control de acceso a sistemas de ficheros

Contribuido por Tom Rhodes.

Además de otras mejoras del sistema de ficheros como las instantáneas (“snapshots”), FreeBSD 5.0 y siguientes ofrecen las ACL (“Access Control Lists”, listas de control de acceso) como un elemento más de seguridad.

Las listas de control de acceso extienden el modelo de permisos estándar de UNIX® de una manera altamente compatible (POSIX®.1e). Esta opción permite al administrador usar con gran provecho un modelo de seguridad más sofisticado.

Para habilitar soporte de ACL en sistemas de ficheros UFS la siguiente opción:

    options UFS_ACL

debe ser compilada en el kernel. Si esta opción no ha sido compilada, se mostrará un mensaje de advertencia si se intenta montar un sistema de ficheros que soporte ACL. Esta opción viene incluida en el kernel `GENERIC`. Las ACL dependen de los atributos extendidos habilitados en el sistema de ficheros. Los atributos extendidos están incluidos por defecto en la nueva generación de sistemas de ficheros UNIX UFS2.

> Nota: Los atributos extendidos pueden usarse también en UFS1 pero requieren una carga de trabajo mucho más elevada que en UFS2. El rendimiento de los atributos extendidos es, también, notablemente mayor en UFS2. Por todo esto si quiere usar ACL le recomendamos encarecidamente que use UFS2.

LasACL se habilitadan mediante una bandera administrativa durante el montaje, `acls`, en el fichero `/etc/fstab`. La bandera de montaje puede también activarse de forma permanente mediante tunefs(8) para modificar una bandera de superbloque ACLs en la cabecera del sistema de ficheros. En general es preferible usar la bandera de superbloque por varios motivos:

- La bandera de montaje ACL no puede cambiarse por un remontaje (mount(8) `-u`), sino con un completo umount(8) y un mount(8). Esto significa que no se pueden habilitar las ACL en el sistema de ficheros raíz después del arranque. También significa que no se puede cambiar la disposición de un de ficheros una vez que se ha comenzado a usar.

- Activar la bandera de superbloque provocará que el sistema de ficheros se monte siempre con las ACL habilitadas incluso si no existe una entrada en `fstab` o si los dispositivos se reordenan. Esto es así para prevenir un montaje accidental del sistema de ficheros sin tener las ACL habilitadas, que podría resultar en que se impongan de forma inadecuada las ACL, y en consecuencia problema de seguridad.

> Nota: Podemos cambiar el comportamiento de las ACL para permitirle a la bandera ser habilitada sin un mount(8) completo, pero puede salirle el tiro por la culata si activa las ACL, luego las desactiva, y después las vuelve a activar sin configurar desde cero las atributos extendidos. En general, una vez que se han deshabilitado las ACL en un sistema de ficheros no deben dehabilitarse, ya que la protección de ficheros resultante puede no ser compatible las que esperan los usuarios del sistema, y al volver a activar las ACL volver a asignar las ACL a ficheros cuyos permisos hubieran sido cambiados, lo que puede desenbocar en un escenario impredecible.

Los sistemas de ficheros con ACL habilitadas tienen un signo `+` (más) al visualizar sus configuraciones de permisos. Por ejemplo:

    drwx------  2 robert  robert  512 Dec 27 11:54 private
    drwxrwx---+ 2 robert  robert  512 Dec 23 10:57 directorio1
    drwxrwx---+ 2 robert  robert  512 Dec 22 10:20 directorio2
    drwxrwx---+ 2 robert  robert  512 Dec 27 11:57 directorio3
    drwxr-xr-x  2 robert  robert  512 Nov 10 11:54 public_html

Aquí vemos que los directorios `directorio1`, `directorio2`, y `directorio3` están usando ACL. El directorio `public_html` no.

## 14.12.1. Uso de ACL

Las ACLs del sistema de ficheros pueden comprobarse con getfacl(1). Por ejemplo, para ver las configuraciones de ACL del fichero `test`, uno podría usar lo siguiente:

    % getfacl test
        #file:test
        #owner:1001
        #group:1001
        user::rw-
        group::r--
        other::r--

Para cambiar las configuraciones de las ACL en este fichero use setfacl(1). Observe:

    % setfacl -k test

La bandera `-k` eliminará todas las ACLs definidas para un fichero o sistema ficheros. El método preferible sería utilizar `-b`, ya que deja los campos básicos imprescindibles para que las ACL sigan funcionando.

    % setfacl -m u:trhodes:rwx,group:web:r--,o::--- test

La opción `-m` se usa para modificar las entradas por defecto de las ACL. Debido a que no había entradas predefinidas puesto que fueron eliminadas por la orden anterior, restauraremos las opciones por defecto y asignará las opciones listadas. Tenga en cuenta que si añade un nuevo usuario o grupo aparecerá el error “`Invalid argument`” en la salida estándar `stdout`.

Anterior | Inicio | Siguiente
OpenSSH | Subir | Monitorización de fallos de seguridad de aplicaciones

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.