miércoles, 20 de marzo de 2013

Control de acceso a archivos y carpetas por listas (ACL)


1. CONTROL DE ACCESOS A ARCHIVOS Y CARPETAS


2. ACL


Los ACLs permiten otorgar privilegios de acceso adicionales.

El propietario de un archivo puede, gracias a los ACLs, otorgar privilegios a uno o más usuarios y/o grupos que se sustituirán a los privilegios de acceso de base.



Con los ACLs es posible otorgar privilegios a un usuario que no es parte del grupo sin modificar los privilegios de los otros. Igualmente se pueden autorizar privilegios de acceso a un grupo de usuarios que no pertenecen al grupo del archivo. No hay límites en lo que respecta al número de usuarios o grupos a adicionar con los ACLs.


El respaldo hecho con tar no memoriza los ACLs definidos.


Un ACL está compuesto de varias entradas de tipo ACL. Una entrada especifica los permisos de acceso a un objeto asociado a un usuario o grupo de usuarios utilizando una combinación de privilegios tradicionales r, w & x.


3. SISTEMA OPERATIVO


La presente instalación, se la hará en un Sistema Operativo Linux, Distribución Debian, Versión 6 (Squeeze).


4. PAQUETES INSTALADOS


acl


5. INSTALACIÓN DEL PAQUETE ACL


Primero instalar el paquete ACL.

# apt-get install acl


Una vez que se ha instalado el paquete ACL, se dispondrá de dos nuevos comandos que son el setfacl y getfacl.

Para que el soporte de ACL sea válido, se debe modificar el montaje del volumen con el parámetro acl, tal como se muestra a continuación.



# nano /etc/fstab


# /etc/fstab: static file system information.
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
devpts          /dev/pts        devpts  rw,noexec,nosuid,gid=5,mode=620 0  0
/dev/xvda1 none swap sw 0 0
/dev/xvda2 / ext4 errors=remount-ro 0 1
/dev/xvdb1 /mnt/data ext4 rw,acl 0 0
/dev/xvdb2 /mnt/user ext4 rw,acl 0 0


/dev/xvdb1 /mnt/data ext4 defaults,acl,errors=remount-ro 0 1
/dev/xvdb2 /mnt/users ext4 defaults,acl,errors=remount-ro 0 1


Aquí se ha indicado que los volúmenes lógicos xvdb1 y xvdb2 se montan en la carpeta /mnt/data y mnt/user respectivamente, con rectura y escritura con soporte para acl.


5.1. SETFACL


El modelo de permiso de accesos UGO (User, Group, Others) tradicional de UNIX es bastante limitado, para establecer un modelo de permisos avanzado con listas, se utiliza setfacl de la siguiente manera:


# setfacl -R -m g:grupo:rwx /carpeta


Donde:
  • -R define que se haga todo recursivamente.
  • -m define que se mofique los permisos a un archivo o carpeta
  • g - define que se asignen permisos a un grupo
  • u - define que se asignen permisos a un usuario
  • rwx, establece que tenga permisos de r=lectura, w=escritura y x=ejecución. Si se desea omitir cualquiera de ellos, se debe colocar el signo “-” en vez de la letra, es decir, si se desea dar permisos únicamente de lecutra se debe colocar r--.
Ahora bien, se han seteado permisos mediante ACL’s, pero las las futuras ACL’s de los nuevos archivos o carpetas no mantendrán ese mismo esquema, por lo que es necesario establecer ACL’s por default a un directorio, para lo cual, se utiliza el switch -d.


Una vez que se ha establecido los permisos necesarios, cuando se hace un ls -l, se puede ver en la sección de permisos un signo “+” al final, eso indica que tiene permisos asignados por medio de ACL’s:


# ls -l  /mnt/data/proyecto
total 64
drwxrwx---+ 2 root root 4096 Oct 15 17:50 adm
drwxrwx---+ 2 root root 4096 Oct 15 16:55 amb
drwxrwx---+ 2 root root 4096 Oct 15 16:55 cal
drwxrwx---+ 2 root root 4096 Oct 15 16:55 clt
drwxrwx---  2 root root 4096 Oct 15 16:55 dib
drwxrwx---+ 2 root root 4096 Oct 15 16:55 dir
drwxrwx---+ 9 root root 4096 Oct 15 16:56 dis
drwxrwx---+ 2 root root 4096 Oct 15 16:56 fis
drwxrwx---+ 2 root root 4096 Oct 15 16:56 ger
drwxrwx---+ 6 root root 4096 Oct 15 16:57 inf
drwxrwx---  2 root root 4096 Oct 15 17:28 ins
drwxrwx---+ 2 root root 4096 Oct 15 16:57 lgl
drwxrwx---+ 4 root root 4096 Oct 15 17:51 pyc
drwxrwx---+ 2 root root 4096 Oct 15 16:57 sec
drwxrwx---+ 2 root root 4096 Oct 15 16:57 top


5.2. GETFACL


El comando getfacl permite mostrar los ACLs de un archivo o carpeta..
  • La opción -R permite ver los ACLs de forma recursiva
  • La opción -L para el enrutamiento de los enlaces simbólicos
# getfacl -R -L *
# file: adm
# owner: root
# group: root
user::rwx
group::rwx
group:440-dir:r-x
group:440-adm:rwx
mask::rwx
other::---


# file: amb
# owner: root
# group: root
user::rwx
group::rwx
group:440-dir:r-x
group:440-pyc:r-x
group:440-fis:r-x
group:440-amb:rwx
mask::rwx
other::---


6. RECOMENDACIONES


Es recomendable utilizar ACL’s solo cuándo se necesite disponer de accesos a más de un grupo, ya que en el caso de que se necesite un solo grupo de acceso, únicamente se debería usar chown user:group.

No hay comentarios:

Publicar un comentario