Como administrador del sistema. nuestra primera prioridad será proteger y asegurar los datos del acceso no autorizado. Todos somos conscientes de los permisos que establecemos mediante algunos comandos útiles de Linux como chmod. chown. chgrp. … etc. Sin embargo, estos permisos predeterminados los conjuntos tienen algunas limitaciones y, a veces, pueden no funcionar según nuestras necesidades. Por ejemplo, no podemos configurar diferentes conjuntos de permisos para diferentes usuarios en el mismo directorio o archivo. Por lo tanto, se implementaron Listas de control de acceso. ( ACL. .
Listas de control de acceso de Linux
Digamos que tiene tres usuarios, ‘ tecmint1. , ‘ tecmint2. y ‘ tecmint3 ‘. Cada uno de los grupos en común dice “ acl”. El usuario “ tecmint1. desea que solo el usuario “ tecmint2. pueda leer. y acceder. a los archivos propiedad de “ tecmint1. ‘y nadie más debería tener acceso a eso.
ACL. s ( Listas de control de acceso. nos permite hacer lo mismo truco. Estas ACL nos permiten otorgar permisos para un usuario. grupo. y cualquier grupo de usuarios que no estén en la lista de grupos de un usuario.
Nota. Según la documentación del producto Redhat, proporciona compatibilidad con ACL para el sistema de archivos ext3 y los sistemas de archivos exportados a NFS.
Table of Contents
Cómo comprobar la compatibilidad con ACL en Sistemas Linux
Antes de seguir adelante, debe tener soporte para ACL en el Kernel actual y los sistemas de archivos montados.
1. Verifique el Kernel para soporte de ACL freestar.config.enabled_slots.push (LocationName: “tecmint_incontent “, slotId:” tecmint_incontent “);
Ejecute el siguiente comando para verificar la compatibilidad con ACL para el sistema de archivos y la opción POSIX_ACL = Y. (si hay N. en lugar de S. entonces significa que Kernel no admite ACL y necesita ser recompilado).
[[email protected] ~] # 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_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 2. Verifique los paquetes requeridos
Antes de comenzar a jugar con las ACL, asegúrese de tener instalados los paquetes requeridos. A continuación se muestran los paquetes necesarios que deben instalarse con yum. o apt-get.
[[email protected] ~] # yum install nfs4-acl-tools acl libacl [en sistemas basados en RedHat. [[email protected] ~] $ sudo apt-get install nfs4-acl-tools acl [en sistemas basados en Debian. 3. Marque Sistema de archivos montado para compatibilidad con ACL
Ahora, compruebe si el sistema de archivos montado está montado con la opción ACL o no. Podemos usar el comando ‘mount. para verificar lo mismo que se muestra a continuación.
[[email protected] ~] # mount | grep-i root/dev/mapper/fedora-root on/type ext4 (rw, relatime, data = order)
Pero en nuestro caso no muestra acl por defecto. Entonces, a continuación, tenemos la opción de volver a montar la partición montada nuevamente usando la opción acl. Pero, antes de seguir adelante, tenemos otra opción para asegurarnos de que la partición esté montada con la opción acl o no, porque para el sistema reciente puede estar integrada con la opción de montaje predeterminada.
[[email protected] ~] # tune2fs-l/dev/mapper/fedora-root | grep acl Opciones de montaje predeterminadas: user_xattr acl
En la salida anterior, puede ver que la opción de montaje predeterminada ya tiene soporte para acl. Otra opción es volver a montar la partición como se muestra a continuación.
[[email protected] ~] # mount-o remount, acl/
A continuación, agregue la siguiente entrada al archivo ‘/etc/fstab’ para hacerlo permanente.
/dev/mapper/fedora-root/ext4 defaults, acl 1 1
De nuevo, vuelva a montar la partición.
[[email protected] ~] # mount-o remount/4. Para Servidor NFS
En el servidor NFS, si el sistema de archivos exportado por el servidor NSF admite ACL y los clientes NFS pueden leer las ACL, el sistema cliente utilizará las ACL.
Para deshabilitar las ACL en el recurso compartido NFS, debe agregar la opción “ no_acl. en el archivo “/etc/exportfs. en el servidor NFS. Para deshabilitarlo en el lado del cliente NSF nuevamente, use la opción “ no_acl. durante el tiempo de montaje.
Cómo implementar el soporte de ACL en sistemas Linux
Hay dos tipos de ACL.
- Access ACL. las ACL de acceso se utilizan para otorgar permisos en cualquier archivo o directorio.
- ACL predeterminadas. las ACL predeterminadas se utilizan para otorgar/configurar la lista de control de acceso solo en un directorio específico.
Diferencia entre ACL de acceso y ACL predeterminada:
- La ACL predeterminada se puede usar solo a nivel de directorio.
- Cualquier subdirectorio o archivo creado dentro de ese directorio heredará las ACL de su directorio principal. Por otro lado, un archivo hereda las ACL predeterminadas como sus ACL de acceso.
- Hacemos uso de “ –d. para configurar las ACL predeterminadas y las ACL predeterminadas son opcionales.
Antes de configurar las ACL predeterminadas
Para determinar las ACL predeterminadas para un archivo o directorio específico, use el comando ‘ getfacl. . En el siguiente ejemplo, getfacl. se usa para obtener las ACL predeterminadas para una carpeta ‘ Música. .
[[email protected] ~] # getfacl Music/# file: Music/# owner: root # group: root user :: rwx group :: rx other :: rx default: user :: rwx default: group :: rx default: other :: rw-Después de configurar las ACL predeterminadas
Para establecer las ACL predeterminadas para un archivo o directorio específico, use el comando ‘ setfacl. . En el siguiente ejemplo, el comando setfacl. establecerá nuevas LCA ( leer. y ejecutar. en una carpeta ‘ Música’.
[[email protected] ~] # setfacl-md: o: rx Music/[[email protected] ~] # getfacl Music/# file: Music/# owner: root # group: root user: : rwx group :: rx other :: rx default: user :: rwx default: group :: rx default: other :: rx. Cómo configurar nuevas ACL
Utilice el comando ‘ setfacl’. para configurar o modificar cualquier archivo o directorio. Por ejemplo, para otorgar permisos de lectura. y escritura. al usuario ‘ tecmint1. .
# setfacl-mu: tecmint1: rw/tecmint1/ejemplo Cómo ver las ACL
Utilice el comando ‘ getfacl. para ver las ACL en cualquier archivo o directorio. Por ejemplo, para ver ACL en ‘/tecmint1/example. use el siguiente comando.
# getfacl/tecmint1/example # file: tecmint1/example/# owner: tecmint1 # group: tecmint1 user :: rwx user: tecmint1: rwx user: tecmint2: r–group :: rwx mask :: rwx other ::—Cómo eliminar ACL
Para eliminar ACL de cualquier archivo/directorio, usamos x. y b. como se muestra a continuación.
# setfacl-x archivo/directorio ACL # elimina solo la ACL especificada del archivo/directorio. # setfacl-b archivo/directorio # eliminando todas las ACL de archivo/direcoty
Implementemos ACL en los siguientes escenarios.
Dos usuarios ( tecmint1. y tecmint2 ), ambos tienen un grupo secundario común llamado ‘ acl. . Crearemos un directorio propiedad de ‘ tecmint1. y proporcionaremos el permiso de lectura. y ejecución. en ese directorio al usuario ‘ tecmint2. ‘.
Paso 1:. Cree dos usuarios y elimine la contraseña de ambos
[[email protected] ~] # para el usuario en tecmint1 tecmint2> do> useradd $ usuario> passwd-d $ usuario> hecho Eliminando la contraseña para el usuario tecmint1. passwd: Eliminación correcta de la contraseña del usuario tecmint2. passwd: Success
Paso 2:. Cree un grupo y usuarios para el grupo secundario.
[[email protected] ~] # groupadd acl [[email protected] ~] # usermod-G acl tecmint1 [[email protected] ~] # usermod-G acl tecmint2
Paso 3:. Cree un directorio /tecmint. y cambie la propiedad a tecmint1 .
[[correo electrónico protegido] ~] # mkdir/tecmint1 [[correo electrónico protegido] ~] # chown tecmint1/tecmint1/[[correo electrónico protegido] ~] # ls-ld/tecmint1/drwxr-xr-x 2 tecmint1 root 4096 17 de abril 14:46/tecmint1/[[email protected] ~] # getfacl/tecmint1 getfacl: Eliminando el ‘/’ inicial de los nombres de ruta absolutos. # file: tecmint1 # owner: tecmint1 # group: root user :: rwx group :: rx other :: rx
Paso 4:. Inicie sesión con tecmint1. y cree un directorio en /tecmint carpeta.
[[email protected] ~] $ su-tecmint1 Último inicio de sesión: jueves 17 de abril 14:49:16 IST 2014 en pts/4 [[email protected] ~] $ cd/tecmint1/[[email protected] tecmint1 ] $ mkdir ejemplo [[email protected] tecmint1] $ ll total 4 drwxrwxr-x 2 tecmint1 tecmint1 4096 abr 17 14:50 ejemplo [[email protected] tecmint1] $ whoami tecmint1
Paso 5:. Ahora configure ACL usando ‘ setfacl. , para que ‘ tecmint1. tenga todos los permisos rwx. ‘ tecmint2. ‘solo tendrá permiso de lectura. en la carpeta’ ejemplo. ‘y otros no tendrán permisos.
$ setfacl-mu: tecmint1: rwx example/$ setfacl-mu : tecmint2: r–ejemplo/$ setfacl-m otro:—ejemplo/$ getfacl ejemplo/# archivo: ejemplo # propietario: tecmint1 # grupo: tecmint1 usuario :: rwx usuario: tecmint1: rwx usuario: tecmint2: r–group :: rx mask :: rwx other ::—
Paso 6:. Ahora inicie sesión con otro usuario, es decir, ‘ tecmint2. en un otra terminal y cambie el directorio a “/tecmint1. . Ahora intente ver el contenido usando el comando ‘ ls. y luego intente cambiar el directorio y vea la diferencia como se muestra a continuación.
[[email protected] ~] $ su-tecmint2 Último inicio de sesión: jue 17 de abril 15:03:31 IST 2014 en pts/5 [[email protected] ~] $ cd/tecmint1/[[email protected] tecmint1] $ ls-lR example/example/: total 0 [[email protected] tecmint1] $ cd example/-bash: cd: example/: Permiso denegado. [[email protected] tecmint1] $ getfacl example/# file: example # owner: tecmint1 # group: tecmint1 user :: rwx user: tecmint1: rwx user: tecmint2: r–group :: rwx mask :: rwx other ::—
Paso 7:. Ahora otorgue permiso para ‘ ejecutar. a ‘ tecmint2. en la carpeta ‘ ejemplo. y luego use el comando ‘cd. para ver el efecto. Ahora ‘ tecmint2. tiene los permisos para ver y cambiar el directorio, pero no tiene permisos para escribir nada.
[[email protected] tecmint1] $ setfacl-mu: tecmint2: rx example/[[email protected] tecmint1] $ getfacl example/# file: example # owner: tecmint1 # group: tecmint1 user :: rwx user: tecmint1: rwx user: tecmint2: rx group :: rwx mask :: rwx other ::–[[email protected] ~] $ su-tecmint2 Último inicio de sesión: jueves 17 de abril 15:09:49 IST 2014 en pts/5 [[email protected] ~] $ cd/tecmint1/[[email protected] tecmint1] $ cd ejemplo/[[correo electrónico protegido] ejemplo] $ getfacl. [[correo electrónico protegido] ejemplo] $ mkdir prueba mkdir: no se puede crear el directorio ‘prueba’: permiso denegado. [[correo electrónico protegido] ejemplo] $ prueba táctil toque: no se puede tocar ‘prueba’: permiso denegado.
Nota. después de implementar ACL, verá un signo ‘ +. adicional para ‘ls –l ‘como se muestra a continuación.
[[email protected] tecmint1] # ll total 4 drwxrwx—+ 2 tecmint1 tecmint1 4096 17 de abril 17:01 ejemplo
Enlaces de referencia
Documentación de ACL