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