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