LINUX

Cómo administrar las ACL de Linux usando Setfacl y Getfacl

los comandos linux setfacl y getfacl

El comando setfacl de Linux permite a los usuarios establecer extensas listas de control de acceso en archivos y directorios. Normalmente, usando el comando chmod, podrá establecer permisos para propietario/grupo/otros. Pero en caso de que también necesite otorgar permisos de archivo a otros usuarios, esto no se puede hacer usando chmod. Setfacl lo ayudará a deshacerse de tales problemas.

Por ejemplo, no podemos configurar diferentes conjuntos de permisos para diferentes usuarios en el mismo directorio o archivo. Por lo tanto, se implementaron las Listas de control de acceso (ACL). Puede ver el conjunto de ACL actual en archivos y directorios mediante el comando getfacl.

Para usar setfacl en un archivo/directorio, el sistema de archivos residente debe tener habilitado el soporte acl. Si el sistema de archivos no admite acl, obtendrá el error «operación no admitida». En este caso, debe agregar compatibilidad con ACL al sistema de archivos en /etc/fstab de la siguiente manera y luego volver a montar el sistema de archivos.

Compruebe si el Kernel tiene soporte ACL

Ejecute el siguiente comando para verificar la compatibilidad de ACL para el sistema de archivos y la opción POSIX_ACL=Y (si hay N en lugar de Y, significa que el Kernel no es compatible con ACL y debe volver a compilarse).

root@linoxide:/home# grep -i acl /boot/config*
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_GENERIC_ACL=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_HFSPLUS_FS_POSIX_ACL=y
CONFIG_F2FS_FS_POSIX_ACL=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_CIFS_ACL=y
CONFIG_9P_FS_POSIX_ACL=y

Comprobar si el sistema de archivos admite ACL

Puedes probar esto con:

$ cat /etc/fstab

En algunos sistemas, mirar fstab no le mostrará si el sistema de archivos admite acl, sino que solo mostrará «predeterminados» como opciones de montaje:

root@linoxide:/home# cat /etc/fstab
LABEL=cloudimg-rootfs	/	 ext4	defaults	0 0

En este caso, puede usar el siguiente comando para verificar si el sistema de archivos está montado con soporte acl:

root@linoxide:/home# tune2fs -l /dev/sda1
tune2fs 1.42.9 (4-Feb-2014)
Filesystem volume name:   cloudimg-rootfs
Last mounted on:          /
Filesystem UUID:          2e294961-ce03-483e-a53e-ff3fc4514bd4
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl

Si su sistema de archivos no se montó con la opción «acl», puede montarlo proporcionando la opción necesaria:

# mount -o remount -o acl /dev/sda1

Verifique los paquetes requeridos

Para usar las ACL de Linux, asegúrese de tener instalados los paquetes necesarios. A continuación se encuentran los paquetes necesarios que deben instalarse mediante yum o apt-get.

Para sistemas basados ​​en RedHat:

$ sudo yum install nfs4-acl-tools acl libacl

Para Debian basado:

$ sudo apt-get install nfs4-acl-tools acl

Ahora podemos pasar por diferentes usos de «setfacl» dominio. Primero, debemos crear una carpeta llamada «test_folder» como usuario raíz.

root@linoxide:/home# mkdir test_folder

root@linoxide:/home# getfacl test_folder/
# file: test_folder/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

1. Suministro de ACL para un usuario individual

Digamos que desea otorgar acceso completo al usuario «prueba» (puede ser cualquier usuario) al directorio «prueba_carpeta». Esto se puede hacer usando setfacl como sigue.

root@linoxide:/home# setfacl -m u:test:rwx test_folder/

root@linoxide:/home# getfacl test_folder/
# file: test_folder/
# owner: root
# group: root
user::rwx
user:test:rwx
group::r-x
mask::rwx
other::r-x

2. Proporcionar ACL para todos los usuarios de un grupo

Si desea otorgar permiso de acceso de escritura a todos los usuarios del grupo «prueba” en la carpeta “test_folder”, puedes hacerlo de la siguiente manera.

root@linoxide:/home# setfacl -m g:testg:w test_folder/
  
root@linoxide:/home# getfacl test_folder/
# file: test_folder/
# owner: root
# group: root
user::rwx
user:test:rwx
group::r-x
group:testg:-w-
mask::rwx
other::r-x

3. Revocación de acl de un usuario/grupo

Si desea revocar los permisos que le hemos otorgado al usuario Prueba y el grupo pruebapuedes usar setfacl ordenar de la siguiente manera.

root@linoxide:/home# setfacl -x u:test,g:testg test_folder/

root@linoxide:/home# getfacl test_folder/
# file: test_folder/
# owner: root
# group: root
user::rwx
group::r-x
mask::rwx
other::r-x

4. Copiar la ACL de un archivo/directorio a otro

Suponga que desea tener el mismo conjunto de ACL de carpeta_prueba y en carpeta_prueba1, puede configurarlo copiando la ACL de la siguiente manera.

root@linoxide:/home# getfacl test_folder/ > acl.txt
root@linoxide:/home# mkdir test_folder1
root@linoxide:/home# setfacl -M acl.txt test_folder1/
root@linoxide:/home# getfacl test_folder1/
# file: test_folder1/
# owner: root
# group: root
user::rwx
user:test:rwx
group::r-x
group:testg:-w-
mask::rwx
other::r-x

Conclusión

En este tutorial, vimos el uso básico de las herramientas de ACL getfacl y setfacl para establecer y revocar algunos permisos en test_folder. También aprendimos cómo verificar el soporte del sistema de archivos kernel y acl y cómo instalar los paquetes requeridos. Si tiene pensamientos o comentarios sobre Linux acl, escríbalos en la sección de comentarios a continuación.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar