Cómo administrar ACL en Linux
- 4652
- 19
- Mario Gollum
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
- « Comenzando con Jekyll en Debian 9 Stretch Linux
- LEMP (Linux, Nginx, Mariadb, PHP) Despliegue de imagen de la pila de pila »