Bienvenido(a) a Alcance Libre 05/09/2025, 12:58
Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2016 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector, hace mal uso de éstos.
Los procedimientos de este documento requieren haber estudiado y comprendido previamente los conceptos del documento titulado «Permisos del sistema de archivos.»
Las listas de control de acceso (ACL, access control lists) se utilizan para controlar los permisos de acceso de los archivos y directorios con mayor exactitud que con chmod. Cada objeto del sistema puede ser asociado a una ACL que controla el acceso de modo discrecional hacia ese objeto. Además, los directorios pueden tener asociado un ACL que controla los permisos de acceso iniciales para los objetos creados en el interior de éste, a los que se le denomina ACL predeterminado.
En resumen, cuando el sistema de archivos ha sido montado con la opción acl, es posible asignar permisos de lectura, escritura y ejecución por usuarios y/o grupos. El soporte necesario viene habilitado de modo predeterminado en CentOS, Fedora™, Red Hat™ Enterprise Linux, openSUSE™ y SUSE™ Linux Enterprise.
![]() | |||
En el caso de SUSE™ Linux Enterprise 10, se requiere añadir la opción acl en la columna de opciones de la configuración de los sistemas de archivos presentes en el sistema, editando el archivo /etc/fstab:
Ejemplo:
Para aplicar los cambios de manera inmediata, sin necesidad de reiniciar, se ejecutaría:
|
La instalación estándar incluye el paquete acl. Si se realiza una instalación mínima, es necesario ejecutar lo siguiente:
|
Si se utiliza ALDOS, CentOS 6, Red Hat™ Enterprise Linux 6 —utilizando los almacenes yum de AL-Server— o Fedora™ se puede instalar además el paquete eiciel, el cual permite gestionar las listas de control de acceso desde el administrador de archivos (Nautilus) del escritorio de GNOME.
|
La instalación estándar incluye el paquete acl. Si se realizó una instalación minimalista, probablemente sea necesario ejecutar lo siguiente:
|
Si se utiliza openSUSE™ 11 o SUSE™ Enterprise Linux 11 y versiones posteriores de éstos, se puede instalar además el paquete nautilus-eiciel, el cual permite gestionar de manera gráfica las listas de control de acceso desde el administrador de archivos (Nautilus) del escritorio de GNOME.
|
Cuando el soporte para listas de control de acceso está habilitado en los sistemas de archivos y el paquete acl está instalado, se pueden utilizar lo siguiente:
Para obtener una descripción completa del uso de getfacl, ejecute:
|
Para obtener una descripción completa del uso de setfacl, ejecute:
|
Para obtener una descripción completa del formato de las listas de control de acceso, ejecute:
|
Para ver el contenido de las listas de control de acceso de un archivo o directorio particular, se ejecuta getfacl con la ruta del archivo o directorio como argumento. Ejemplo:
|
Lo anterior devolvería una salida similar la siguiente:
|
Lo anterior muestra que sólo el propietario del directorio tiene permisos de lectura, escritura y acceso.
Para respaldar el ACL de un archivo o directorio, se ejecuta getfacl con la opción -R, la ruta del archivo o directorio como argumento, el signo > —para redirigir la salida estándar— y la ruta del archivo donde se quiere guardar el respaldo. Ejemplo:
|
Para restaurar el respaldo, hay que cambiarse primero al directorio /:
|
Y ejecutar setfacl con la opción --restore y la ruta del archivo de respaldo como argumento. Ejemplo:
|
Es importante destacar las opciones de setfacl pues son relevantes para cualquier procedimiento.
Para lograr que un usuario en particular pueda acceder también a este directorio, se ejecuta setfacl, con la opción -m para modificar la lista de control de acceso, [u,g,o]:[usuario,grupo]:[r,w,x] y la ruta del directorio como argumentos. Ejemplo:
|
En el ejemplo anterior se utilizó X mayúscula para indicar que sólo se aplicará el bit de acceso de a directorios evitando aplicar el bit de ejecución a los archivos.
![]() | |
Si lo prefiere, también pude utilizar notación octal:
|
Lo anterior establece que se añaden permisos de lectura y acceso al directorio /home/fulano para el usuario zutano.
Para verificar, ejecute de nuevo getfacl con la ruta del directorio modificado como argumento:
|
Lo anterior devolvería una salida similar a la siguiente:
|
Pueden asignarse permisos diferentes para otros usuarios. Ejemplo:
|
Lo anterior establece que se añaden permisos de lectura, escritura y acceso al directorio /home/fulano para el usuario perengano. Si utiliza X mayúscula se indicará que se trata específicamente del bit de acceso en lugar de acceso y ejecución.
Para verificar lo anterior, se ejecuta de nuevo getfacl con la ruta del directorio modificado como argumento:
|
Lo anterior devolvería una salida similar a la siguiente:
|
Estos permisos que se establecieron en la lista de control de acceso del directorio /home/fulano son exclusivamente para éste. Cualquier nuevo archivo o directorio creado carecerá de estos nuevos permisos. Si se desea que éstos permisos se vuelvan los predeterminados para los nuevos archivos y directorios que sean creados en lo sucesivo dentro del directorio /home/fulano, se ejecuta setfacl pero añadiendo la opción -d para definir que serán los permisos predeterminados para nuevos archivos y directorios. Ejemplo:
|
Se recomienda utilizar X mayúscula para indicar que sólo se aplicará el bit de acceso de a directorios evitando aplicar el bit de ejecución a los archivos.
![]() | |||
Lo anterior también se puede hacer en notación octal:
Y la opción -d también se puede integrar a los argumentos:
Y además simplificar todo lo anterior en una sola operación:
|
Para verificar todo lo anterior, se ejecuta de nuevo getfacl con la ruta del directorio modificado como argumento:
|
Lo anterior devolvería una salida similar a la siguiente:
|
Para aplicar los permisos de forma descendente, se ejecuta setfacl con la opción -R (mayúscula), la opción -m, [u,g,o]:[usuario,grupo]:[r,w,X,x] y la ruta del directorio como argumento. Ejemplo:
|
En el ejemplo anterior se utilizó X mayúscula para indicar que sólo se aplicará el bit de acceso de a directorios evitando aplicar el bit de ejecución a los archivos.
![]() | |
También puede simplificar todo lo anterior en una sola operación:
En el ejemplo anterior se utilizó X mayúscula para indicar que sólo se aplicará el bit de acceso de a directorios evitando aplicar el bit de ejecución a los archivos. |
Lo anterior asignaría permisos r-x para el usuario zutano y rwx para el usuario perengano sobre el directorio /home/fulano y todo su contenido, pero aplicando sólo el bit de acceso a directorios y evitando asignar bit de ejecución a los archivos.
Eliminar permisos asignados por listas de control de acceso.
Para eliminar los permisos de un usuario en particular de la lista de control de acceso de un directorio en particular, se ejecuta setfacl con la opción -x, el nombre del usuario o grupo y la ruta del directorio como argumento. Ejemplo:
|
Para hacer lo mismo, pero de forma descendente, se ejecuta setfacl con la opción -R (mayúscula), la opción -x, el nombre del usuario o grupo y la ruta del directorio como argumento. Ejemplo:
|
Para eliminar los permisos predeterminados en la lista de control de acceso, se ejecuta setfacl con la opción -k (--remove-default) y la ruta del directorio como argumento. Ejemplo:
|
Para eliminar todos los permisos en la lista de control de acceso, dejando todo como en el punto inicial, se ejecuta setfacl con la opción -b (--remove-all) y la ruta del directorio como argumento. Ejemplo:
|
Para hacer lo mismo, pero de forma descendente, se ejecuta setfacl con la opción -R (mayúscula), la opción -b (--remove-all) y la ruta del directorio como argumento. Ejemplo:
|
Para copiar la lista de control de acceso de un archivo y aplicarla en otro, se ejecuta:
|
Para copiar la lista de control de acceso principal como la lista de control de acceso predeterminada, se ejecuta:
|
Última Edición: 24/09/2016, 14:13| Hits: 127,461