Asegure archivos/directorios utilizando ACLS (listas de control de acceso) en Linux

Asegure archivos/directorios utilizando ACLS (listas de control de acceso) en Linux

Como un Administrador del sistema, Nuestra primera prioridad será proteger y asegurar datos del acceso no autorizado. Todos somos conscientes de los permisos que establecemos utilizando algunos comandos útiles de Linux como chmod, queso, CHGRP… etc. Sin embargo, estos conjuntos de permisos predeterminados tienen cierta limitación 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. De este modo, Listas de control de acceso (ACLS) se implementaron.

Listas de control de acceso de Linux

Digamos que tienes tres usuarios ',tecmint1','tecmint2' y 'tecmint3'. Cada uno que tiene un grupo común dice 'acl '. Usuariotecmint1'Solo quiero eso'tecmint2'El usuario puede leer y acceso archivos propiedad de 'tecmint1'Y nadie más debería tener acceso en eso.

LCAs (Listas de control de acceso) nos permite hacer el mismo truco. Estas ACL nos permiten otorgar permisos para un usuario, grupo y cualquier grupo de cualquier usuario que no esté en la lista de grupos de un usuario.

Nota: Según la documentación del producto REDHAT, proporciona soporte de ACL para el sistema de archivos EXT3 y los sistemas de archivos exportados NFS.

Cómo verificar el soporte de ACL en sistemas Linux

Antes de avanzar, debe tener soporte para las ACL en los sistemas actuales de kernel y archivos montados.

1. Consulte el núcleo para obtener soporte de ACL

Ejecute el siguiente comando para verificar el soporte de ACL para el sistema de archivos y Posix_acl = y opción (si hay norte en lugar de Y, Entonces significa que el núcleo no es compatible con ACL y necesita ser recompilado).

[[correo electrónico protegido] ~]# grep -i acl /boot /config* config_Ext4_fs_posix_acl = y Configurar_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 ACL, asegúrese de haber instalado paquetes requeridos. A continuación se presentan los paquetes requeridos que deben instalarse utilizando beque o apt-get.

[[correo electrónico protegido] ~]# yum instalar nfs4-acl-tools acl libacl [ON Sombrero rojo sistemas basados]
[[correo electrónico protegido] ~] $ sudo apt-get install nfs4-acl-tools acl [on Debian sistemas basados]

3. Verifique el sistema de archivos montados para obtener soporte de ACLS

Ahora, verifique el sistema de archivos montados que está montado con la opción ACL o no. Nosotros podemos usar 'montar'Comando para verificar lo mismo que se muestra a continuación.

[[correo electrónico protegido] ~]# monte | GREP -I root /dev /mapper /fedora -root on /type ext4 (rw, relatime, data = ordenado)

Pero en nuestro caso no muestra ACL de forma predeterminada. 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 integrarse con la opción de montaje predeterminada.

[[correo electrónico protegido] ~]# tune2fs -l/dev/mapper/fedora -root | Opciones de montaje predeterminadas de GREP ACL: 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.

[[Correo electrónico protegido] ~]# Mount -O RETOUNT, ACL /

A continuación, agregue la entrada a continuación al archivo '/etc/fstab' para que sea permanente.

/dev/mapper/fedora-root/ext4 predeterminados, ACL 1 1

De nuevo, vuelve a montar la partición.

[[Correo electrónico protegido] ~]# Mount -O RETOUNT /

4. Para servidor NFS

En el servidor NFS, si los clientes NFS pueden leer el sistema de archivos que exporta el servidor NSF y los clientes de NFS pueden leerlo, entonces el sistema de clientes se utiliza con ACLS.

Para deshabilitar ACLS en NFS Share, debe agregar la opción "NO_ACL" en '/etc/exportfs'Archivo en el servidor NFS. Para deshabilitarlo en el lado del cliente NSF nuevamente use "NO_ACL"Opción durante el tiempo de montaje.

Cómo implementar el soporte de ACL en sistemas Linux

Hay dos tipos de ACLS:

  1. Access ACLS: Se utilizan ACL de acceso para otorgar permisos en cualquier archivo o directorio.
  2. ACLS predeterminado: Las ACL predeterminadas se utilizan para otorgar/configurar la lista de control de acceso en un directorio específico solo.

Diferencia entre el ACL de acceso y el ACL predeterminado:

  1. El ACL predeterminado se puede usar solo en el nivel de directorio.
  2. Cualquier subcirectorio o archivo creado dentro de ese directorio heredará las ACL desde su directorio principal. Por otro lado, un archivo hereda el ACLS predeterminado como su ACL de acceso.
  3. Hacemos uso de "-d"Para configurar ACLS predeterminados y las ACL predeterminadas son opcionales.
Antes de configurar ACLS predeterminados

Para determinar las ACL predeterminadas para un archivo o directorio específico, use el 'getFacl' dominio. En el ejemplo a continuación, el getFacl se usa para obtener las ACL predeterminadas para una carpeta 'Música'.

[[Correo electrónico protegido] ~] # getFacl Music/ # Archivo: Música/ # Propietario: Root # Group: Root User :: RWX Group :: R-X Otro :: R-X Default: Usuario :: RWX Deflabe: Group :: R-X Default: Otro :: RW-
Después de configurar ACLS predeterminados

Para establecer las ACL predeterminadas para un archivo o directorio específico, use el 'setFacl' dominio. En el ejemplo a continuación, el setFacl El comando establecerá un nuevo ACLS (leer y ejecutar) en una carpeta 'Música'.

[[correo electrónico protegido] ~] # setfacl -m d: o: rx music/ [[correo electrónico protegido] ~] # getFacl Music/ # archivo: Music/ # Owner: Root # Group: Root User :: RWX Group :: R -X Otro :: r-x predeterminado: usuario :: rwx predeterminado: grupo :: r-x predeterminado: otros :: r-x

Cómo establecer nuevas ACL

Utilizar el 'setFacl ' Comando para configurar o modificar en cualquier archivo o directorio. Por ejemplo, para dar leer y escribir permisos para el usuario 'tecmint1'.

# setfacl -m u: tecMint1: rw /tecMint1 /ejemplo

Cómo ver ACLS

Utilizar el 'getFacl'Comando para ver ACL en cualquier archivo o directorio. Por ejemplo, para ver ACL en '/TecMint1/Ejemplo'Usar el comando a continuación.

# getFacl/tecMint1/Ejemplo # Archivo: TecMint1/Ejemplo/ # Owner: TecMint1 # Group: TecMint1 Usuario :: RWX Usuario: TecMint1: RWX Usuario: TecMint2: R-- Group :: RWX Mask :: RWX Otro ::---

Cómo eliminar las ACL

Para eliminar el ACL de cualquier archivo/directorio, usamos X y b Opciones como se muestra a continuación.

# setFacl -x ACL Archivo/Directorio # Eliminar solo ACL especificado desde el archivo/directorio. # setfacl -b file/directorio #removing All ACL de File/Direcoty

Implementemos las ACL sobre el siguiente escenario.

Dos usuarios (tecmint1 y tecmint2), ambos con un grupo secundario común llamado 'LCA'. Crearemos un directorio propiedad de 'tecmint1'y proporcionará el leer y ejecutar permiso en ese directorio para el usuario 'tecmint2'.

Paso 1: Crear dos usuarios y eliminar la contraseña de ambos

[[Correo electrónico protegido] ~]# para el usuario en TECMINT1 TECMINT2> do> UserAdd $ user> passwd -d $ user> terminado de eliminación de contraseña para el usuario tecMint1. PASSWD: éxito Eliminación de contraseña para el usuario TECMINT2. PASSWD: éxito

Paso 2: Crear un grupo y usuarios para el grupo secundario.

[[Correo electrónico protegido] ~]# GroupAdd ACL [[Correo electrónico protegido] ~]# usermod -g acl tecMint1 [[correo electrónico protegido] ~]# usermod -g acl tecMint2

Paso 3: Crear un directorio /Tecmint y cambiar 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 /
[[Correo electrónico protegido] ~]# getFacl /tecMint1 getFacl: eliminar el liderazgo '/' de los nombres de ruta absoluta # Archivo: TecMint1 # Propietario: TecMint1 # Group: Root User :: RWX Group :: R-X Otro :: R-X

Etapa 4: Inicia con tecmint1 y crear un directorio en /Tecmint carpeta.

[[Correo electrónico protegido] ~] $ su - TecMint1 Último inicio de sesión: Jue 17 de abril 14:49:16 IST 2014 en PTS/4
[[Correo electrónico protegido] ~] $ CD / TECMINT1 / [[Correo electrónico protegido] TecMint1] $ Mkdir Ejemplo
[[Correo electrónico protegido] TecMint1] $ LL Total 4 DRWXRWXR-X 2 TECMINT1 TECMINT1 4096 Abr 17 14:50 Ejemplo
[[Correo electrónico protegido] TecMint1] $ WHOAMI TECMINT1

Paso 5: Ahora configure ACL usando 'setFacl', de modo que 'tecmint1'tendrá todo RWX permisos, 'tecmint2'solo tendrá leer permiso enejemplo'Carpeta y otros no tendrán permisos.

$ setfacl -m u: tecMint1: rwx ejemplo/ $ setfacl -m u: tecMint2: r-- ejemplo/ $ setfacl -m otro: --- ejemplo/ $ getfacl Ejemplo/ # archivo: ejemplo # propietario: tecMint1 # grupo: tecMint1 user user :: RWX Usuario: TecMint1: RWX Usuario: TecMint2: R-- Group :: R-X Mask :: RWX OTRO ::---

Paso 6: Ahora inicie sesión con otro usuario I.mi. 'tecmint2'En otro terminal y cambie el directorio a'/TecMint1'. Ahora intente ver el contenido usando 'LS'Comando y luego intente cambiar el directorio y vea la diferencia como se muestra a continuación.

[[Correo electrónico protegido] ~] $ su - TecMint2 Último inicio de sesión: Jue 17 de abril 15:03:31 IST 2014 en PTS/5
[[Correo electrónico protegido] ~] $ CD/ TECMINT1/ [[Correo electrónico protegido] TECMINT1] $ LS -LR Ejemplo/ Ejemplo/: Total 0
[[correo electrónico protegido] TecMint1] $ CD Ejemplo/ -Bash: CD: Ejemplo/: Permiso denegado 
[[Correo electrónico protegido] TecMint1] $ GetFacl Ejemplo/ # Archivo: Ejemplo # Owner: TecMint1 # Group: TecMint1 Usuario :: RWX Usuario: TecMint1: RWX Usuario: TecMint2: R-- Group :: RWX Mask :: RWX Otro ::---

Paso 7: Ahora da 'ejecutar' permiso para 'tecmint2' en 'ejemplo'carpeta y luego usar 'cd'Comando para ver el efecto. Ahora 'tecmint2'Tener los permisos para ver y cambiar el directorio, pero no tengo permisos para escribir nada.

[[Correo electrónico protegido] TecMint1] $ setfacl -m u: tecMint2: r -x ejemplo/ [[correo electrónico protegido] tecMint1] $ getFacl Ejemplo/ # archivo: Ejemplo # propietario: tecMint1 # grupo: tecMint1 user :: rwx user: tecMint1: user rwx user rwx : tecMint2: R-X Group :: RWX Mask :: RWX Otro ::---
[[Correo electrónico protegido] ~] $ su - TecMint2 Último inicio de sesión: Jue 17 de abril 15:09:49 IST 2014 en PTS/5
[[Correo electrónico protegido] ~] $ CD/ TECMINT1/ [[Correo electrónico protegido] TecMint1] $ CD Ejemplo/ [[Ejemplo de correo electrónico protegido] $ GetFacl .
[[Correo electrónico protegido] Ejemplo] Prueba de $ Mkdir MKDIR: No se puede crear el directorio 'prueba': permiso denegado 
[[Correo electrónico protegido] Ejemplo] $ touch test Touch: no puedo tocar 'prueba': permiso denegado 

Nota: Después de implementar ACL, verá un extra '+"Firmar para la salida 'ls -l' como se muestra a continuación.

[[Correo electrónico protegido] TecMint1]# ll Total 4 DRWXRWX ---+ 2 TECMINT1 TECMINT1 4096 ABR 17:01 Ejemplo

Enlaces de referencia

Documentación de ACL