Inicio > Gestión de paquetes y sistema > setfacl

setfacl: Establecer listas de control de acceso (ACL) de archivos

El comando setfacl se utiliza para establecer listas de control de acceso (ACL) para archivos y directorios. Va más allá del modelo tradicional de permisos de Unix (propietario, grupo, otros), permitiendo otorgar o revocar permisos de lectura, escritura y ejecución granulares para usuarios o grupos específicos. Esto permite una gestión flexible de requisitos de permisos complejos.

Descripción general

`setfacl` permite una gestión de permisos más flexible para los objetos del sistema de archivos. Puede otorgar o revocar permisos de lectura, escritura y ejecución individualmente a usuarios o grupos específicos, y también puede establecer ACL predeterminadas para que los nuevos archivos o directorios hereden automáticamente las ACL al crearse. Esto es especialmente útil cuando se requiere una gestión de permisos sofisticada en entornos compartidos por varios usuarios.

Funciones principales

  • Configuración de permisos individuales para usuarios/grupos específicos
  • Configuración y herencia de ACL predeterminadas
  • Modificación y eliminación de ACL existentes
  • Aplicación recursiva de permisos

Opciones principales

`setfacl` permite un control detallado de las ACL a través de varias opciones. A continuación se presentan las opciones principales de uso frecuente.

Configuración y modificación de ACL

Eliminación de ACL

Otros

Comando generado:

Combina los comandos.

Descripción:

`setfacl` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

Muestra varios escenarios para administrar las ACL de archivos y directorios utilizando el comando `setfacl`.

Otorgar permisos de lectura/escritura a un usuario específico

setfacl -m u:user1:rw testfile.txt

Otorga permisos de lectura (r) y escritura (w) al usuario `user1` en el archivo `testfile.txt`.

Otorgar permisos de solo lectura a un grupo específico

setfacl -m g:groupA:r shared_dir

Otorga permisos de lectura (r) al grupo `groupA` en el directorio `shared_dir`.

Establecer ACL predeterminadas en un directorio

setfacl -m d:u:user2:rwx project_data

Establece ACL predeterminadas en el directorio `project_data` para que el usuario `user2` tenga permisos de lectura/escritura en los archivos recién creados y permisos de lectura/escritura/ejecución en los directorios recién creados.

Aplicar ACL recursivamente

setfacl -R -m u:user3:r data_archive

Otorga permisos de lectura al usuario `user3` de forma recursiva en el directorio `data_archive` y en todos sus archivos y subdirectorios.

Eliminar una entrada de ACL de un usuario específico

setfacl -x u:user1 testfile.txt

Elimina la entrada de ACL para el usuario `user1` del archivo `testfile.txt`.

Eliminar todas las entradas de ACL extendidas

setfacl -b config_dir

Elimina todas las entradas de ACL extendidas del directorio `config_dir` (los permisos predeterminados se conservan).

Eliminar entradas de ACL predeterminadas

setfacl -k project_data

Elimina todas las entradas de ACL predeterminadas configuradas en el directorio `project_data`.

Instalación

El comando `setfacl` generalmente se proporciona como parte del paquete `acl`. Aunque está instalado por defecto en la mayoría de las distribuciones de Linux, si no puede encontrar el comando, puede instalarlo usando los siguientes comandos.

Sistemas basados en Debian/Ubuntu

sudo apt update && sudo apt install acl

Instala el paquete `acl` usando el administrador de paquetes APT.

Sistemas basados en RHEL/CentOS/Fedora

sudo yum install acl
# o
sudo dnf install acl

Instala el paquete `acl` usando el administrador de paquetes YUM o DNF.

Consejos y precauciones

Consejos y precauciones para usar `setfacl` de manera efectiva y evitar problemas potenciales.

Uso junto con getfacl

Después de configurar las ACL con setfacl, es importante verificar las ACL configuradas actualmente usando el comando getfacl <archivo/directorio>. Esto ayuda a validar si los permisos se aplicaron según lo previsto.

  • Comando de verificación: getfacl <archivo/directorio>

Comprender los permisos de máscara

Las entradas de ACL pueden incluir una entrada de 'máscara'. La máscara define los permisos efectivos máximos que se aplican a todas las entradas de ACL de usuario y grupo. Es decir, si los permisos otorgados a un usuario o grupo específico son mayores que los permisos de la máscara, los permisos reales aplicados estarán limitados por la máscara. La máscara puede ajustarse automáticamente al configurar las ACL con setfacl, por lo que se recomienda verificarla con getfacl.

  • Rol: Restringe los permisos efectivos máximos para todas las entradas de ACL de usuario/grupo
  • Verificación: Verifique la sección 'mask::' en la salida de getfacl

Interacción con permisos predeterminados

Los archivos o directorios con ACL configuradas mostrarán un signo + al final de la cadena de permisos cuando se vean con el comando ls -l. Esto indica que se han aplicado ACL adicionales además de los permisos estándar de Unix. Las ACL complementan el modelo de permisos predeterminado de Unix, pero a veces pueden aumentar la complejidad, por lo que deben usarse con precaución.

  • Indicador de aplicación de ACL: Signo '+' al final de la cadena de permisos en la salida de ls -l

Precaución al aplicar recursivamente (-R)

Tenga cuidado al aplicar ACL recursivamente usando la opción -R. Especialmente cuando se usa junto con -b (eliminar todas las ACL), todas las ACL de los archivos y directorios inferiores pueden eliminarse involuntariamente. Siempre se recomienda verificar primero los resultados con la opción --test o hacer una copia de seguridad de los datos importantes antes de aplicarlos.

  • Recomendación: Verificación previa con la opción --test, hacer copia de seguridad de datos importantes antes de aplicar


Comandos de la misma categoría