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