A continuación, te explico por qué ocurre esto y cómo solucionarlo sin necesariamente desactivar SELinux.
SELinux es una capa de seguridad que utiliza etiquetas para determinar si un proceso (como el hipervisor QEMU) puede acceder a un archivo. El problema comienza cuando tenemos imágenes de disco .qcow2 en una ruta personal (diferente del pool por defecto ubicado /var/lib/libvirt/images) por lo que éstos archivos no están etiquetados correctamente (suelen tener etiquetas como admin_home_t o unlabeled_t).
El hipervisor espera que el archivo tenga una etiqueta específica: virt_image_t. Cuando las etiquetas no coinciden, SELinux bloquea el acceso, incluso si los permisos estándar (DAC) son extremadamente permisivos (chmod 777).
Reetiquetar el directorio
El SELinux Troubleshooter recomienda varias cosas, entre ellas reetiquetar el sistema de archivos completo (touch /.autorelabel), cosa que es muy extrema. También sugiere reetiquetar el archivo .qcow2, pero cuando son varios lo conveniente y funcional es hacer ese proceso al directorio completo.
Lo primero que haremos es agregar el directorio a la política de SELinux usando el comando semanage e indicándole la ruta a dicho directorio:
fraterneo@rainbow:~$ sudo semanage fcontext -a -t virt_image_t "~/KVM/(/.*)?"Ahora aplicamos la etiqueta de manera recursiva al directorio en cuestión:fraterneo@rainbow:~$ sudo restorecon -Rv ~/KVM/
Puedes confirmar que el proceso fue exitoso visualizando las etiquetas de SELinux:
fraterneo@rainbow:~$ ls -lZ ~/KVM/
Un paso no obligatorio pero muy recomendado es darle al usuario y grupo qemu la propiedad sobre los arhivos de imágenes:
fraterneo@rainbow:~$ sudo chown qemu:qemu ~/KVM/*.qemu
Para aplicarlo a tu contexto solo debes reemplazar ~/KVM por la ruta personalizada que usas para tus imágenes de máquinas virtuales.
Si tienes preguntas sobre virtualización en GNU Linux o resolución de problemas en SELinux, déjame saber en los comentarios...








0 comments:
Publicar un comentario