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