Cómo administrar ACL en Linux

Cómo administrar ACL en Linux

Objetivo

Introducción a la gestión de ACL (lista de control de acceso) en Linux

Sistema operativo y versiones de software

  • Sistema operativo: - Distribución de Linux Agnóstico

Requisitos

  • Acceso a la raíz en una instalación de Linux en funcionamiento
  • Conocimiento del sistema de permiso discrecional
  • Un sistema de archivos que admite ACLS (E.G XFS, Ext2, Ext3, Ext4), montado con la opción 'ACL'
  • Tener el paquete 'ACL' instalado

Dificultad

MEDIO

Convenciones

  • # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
  • ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Introducción

En este tutorial veremos qué son las ACL y cómo hacer la manipulación básica de este tipo de permisos en una plataforma de Linux. Las siguientes instrucciones funcionarán en cualquier distribución de Linux. Supongo que lo sabes y te sientes cómodo usando permisos de UGO/RWX discretarios de Linux estándar.

Entonces, ¿qué son las ACL? ?

Las ACL son un segundo nivel de permisos discrecionales, que pueden anular los estándar de UGO/RWX. Cuando se usan correctamente, pueden otorgarle una mejor granularidad al establecer el acceso a un archivo o un directorio, por ejemplo, dando o negando el acceso a un usuario específico que no es el propietario del archivo ni en el propietario del grupo.



Empezando

Lo primero que debe hacer, si desea aprovechar las ACL es asegurarse de que el sistema de archivos en el que desea usarlos se haya montado con la opción 'ACL'. Para verificar este último, puede ejecutar el comando 'tune2fs -l', pasando la partición como argumento. Como puede ver en ejecución (salida truncada):

# tune2fs -l /dev /sda3 

Da el siguiente resultado en mi sistema, mostrando que el sistema de archivos en /dev /sda3 tiene, entre las opciones de montaje predeterminadas, también 'ACL'.

Si su sistema de archivos no se ha montado con la opción 'ACL', puede volver a montarlo en la opción necesaria:

# Mount -O REDENT -O ACL /DEV /SDA1 

Sin embargo, observe que las opciones de montaje se establecen de esta manera, no serán persistentes y no sobrevivirán a un reinicio. Si desea obtener persistencia, debe modificar las opciones de montaje del sistema de archivos en /etc /fstab, asignando la opción 'ACL' estáticamente.

Otra cosa que necesitamos es instalar el LCA paquete. Este paquete contiene varias utilidades de ACL como el getFacl y setFacl programas.

Un caso de prueba

Veamos qué puede hacer las ACL por nosotros. Primero crearemos un archivo llamado texto.cfg y lo daremos como argumento al getFacl dominio. Veamos qué muestra la salida de este comando:

 $ touch text.CFG && getFacl Text.CFG 

Como puede ver, ya que no establecimos ningún permiso de ACL en el archivo, el comando solo muestra los valores de permisos estándar, más el propietario del archivo y el propietario del grupo, ambos con permisos de lectura y escritura. Ahora imaginemos que queremos darle a un usuario específico (crearé a este usuario a propósito y lo llamaré ficticio ), un conjunto específico de privilegios en el archivo. Solo tendremos que correr:

$ setfacl -m u: ficmy: rw texto.CFG 

Analicemos el comando: Primero tenemos, por supuesto, el nombre del programa setFacl, que se explica por sí mismo, luego pasamos el -metro opción (abreviatura de --modificar) que nos permite cambiar las ACL de un archivo, luego las descripciones de permiso U: Dummy: RW.

Tenemos tres 'secciones' divididas por colons: en la primera, la u significa usuario, especificando que queremos establecer el ACL para un usuario específico. Podría haber sido un gramo para grupo, o un O para otros. En la segunda sección tenemos el nombre del usuario a quien queremos establecer los permisos y en el tercero, los permisos para asignar.

Finalmente, el nombre del archivo en el que queremos aplicar los permisos.

Si ahora intentamos ejecutar el comando 'getFacl', podemos ver que su salida refleja los cambios que realizamos:

$ GetFaCl Texto.CFG 



Se ha agregado una entrada para el ficticio usuario, mostrando los permisos que le asignamos. Aparte de eso, si se da cuenta, también una entrada para mascarilla ha aparecido. Que significa ? La máscara asociada con un ACL limita el conjunto de permisos que se pueden asignar en el archivo para los grupos y usuarios nombrados y para el propietario del grupo, pero no tiene ningún efecto en los permisos para el propietario del archivo y el propietario del archivo y el otro grupo de permisos.

En este caso, solo se pueden asignar permisos de lectura y escritura con el comando setFacl. Por supuesto que podemos cambiar esta opción, usando setFacl programa en sí:

$ setfacl -m máscara: r texto.CFG 

Con el comando anterior, configuramos la máscara para permitir solo permisos de lectura. Vamos a ver la salida de getFacl ahora:

$ GetFaCl Texto.CFG 


Como puede ver, no solo los cambios que hicimos en la máscara ahora se informan, sino también los permisos efectivos para el propietario del grupo y el usuario nombrado ficticio se muestran. Aunque el propietario del grupo y el ficticio El usuario tiene permisos de lectura y escritura en el archivo, al cambiar la máscara, hemos limitado efectivamente sus permisos para leer solo. Como muestra la salida del comando, ahora solo se les permite leer el archivo.

Aparte de cambiar explícitamente con el comando anterior, la máscara de ACLS también se vuelve a calcular automáticamente cuando asignamos o cambiamos los permisos con SETFACL (a menos que se especifique la opción -n). Demostremos que: cambiaremos los permisos del ficticio usuario RWX y luego verifique la salida GetFaCl:

$ setfacl -m u: muñeco: texto rwx.CFG && getFacl Text.CFG 


Como puede ver, la máscara se vuelve a calcular y ahora refleja los permisos máximos presentes para el usuario nombrado ficticio. Obviamente, dado que ahora no hay permisos establecidos previamente más altos que la máscara, no hay necesidad de mostrar el #eficaz estado de permiso.

También puede usar ACL para negar completamente el acceso a un archivo para un usuario o grupo con nombre específico. Por ejemplo, ejecutando:

$ setfacl -m u: ficmy: - texto.CFG 

efectivamente negamos todos los privilegios al ficticio Usuario en el texto.archivo cfg.



ACLS predeterminado

El por defecto ACL es un tipo específico de permiso asignado a un directorio, que no cambia los permisos del directorio en sí, pero hace que las ACL especificadas estén establecidas por defecto en todos los archivos creados dentro de él. Demostrarlo: primero vamos a crear un directorio y asignar por defecto ACL al usar el -d opción:

$ mkdir test && setfacl -d -m u: ficmy: test rw 

Ahora, podemos examinar la salida del GetFaCl para ese directorio:

$ getFacl test 


El por defecto Los permisos han sido asignados correctamente. Ahora podemos verificarlos creando un archivo dentro del directorio de prueba y verificando sus permisos ejecutando getFacl:

$ touch test/archivo.CFG && getFacl test/archivo.CFG 


Como se esperaba, el archivo se ha creado automáticamente recibiendo los permisos de ACLS especificados anteriormente.

Cuando desee borrar todas las ACL establecidas, siempre puede ejecutar el setFacl con el -b opción.

Este tutorial cubre los aspectos principales de las ACL y, por supuesto, hay mucho más sobre ellos que saber, por lo que sugiero, como siempre, leer el manual para un conocimiento más profundo. A estas alturas, recuerde que si desea eliminar todos los permisos de ACLS asignados a un archivo, solo tiene que ejecutar setFacl con el -b (corto para --eliminar todo) opción.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Archivos de configuración de Linux: los 30 principales más importantes
  • Descarga de Linux
  • ¿Puede Linux obtener virus?? Explorando la vulnerabilidad de Linux ..
  • La mejor distribución de Linux para desarrolladores
  • Comandos de Linux: los 20 comandos más importantes que necesitas ..
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
  • Cómo montar la imagen ISO en Linux
  • Cómo formatear el disco en Linux