miércoles, 27 de mayo de 2015

Cómo ejecutar virt-manager con usuario no root

virt-manager (Virtual Machine Manager) es la GUI que usaremos para crear y administrar nuestras VM en nuestro servidor Qemu-KVM. Debido a que libvirtd es un proceso que se ejecuta con el usuario root, cada vez que abrimos virt-manager, el sistema nos pide nuestra contraseña y si nuestro usuario puede ejecutar comandos con sudo (sudoers) entonces nos dará acceso a la aplicación. En caso contrario, no lo podremos abrir.

Existen dos maneras de resolver esta situación:
Primero, creando una nueva conexión en virt-manager en la modalidad QEMU/KVM user session. Pero como podemos observar, las VM creadas anteriormente no estarán disponibles y, peor aún las opciones de networking son limitadas. Inmediatamente descartamos esta opción.


La segunda, la cual explicaremos a continuación, es creando una regla de PolicyKit que nos permita el acceso a los miembros del grupo wheel o al usuario actual sin proporcionar contraseña. Esto no es ideal para un entorno empresarial pues puede convertirse en una vulnerabilidad. Más bien lo haremos como usuarios avanzados que constantemente hacemos uso de VM en nuestro equipo. 
[fraterneo@rainbow ~]$ sudo nano /etc/polkit-1/localauthority/50-local.d/50-org.libvirt-nonroot-access.pkla
[libvirt Management Access]
Identity=unix-group:wheel
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes

De esa manera todos los usuarios que pueden ejecutar comandos de root usando sudo (grupo wheel), podrán usar virt-manager sin colocar la contraseña cada vez. Podemos hacerlo para un usuario en específico cambiando el valor de Identity de unix-group a unix-user seguido por el nombre del usuario.
[fraterneo@rainbow ~]$ sudo nano /etc/polkit-1/localauthority/50-local.d/50-org.libvirt-nonroot-access.pkla
[libvirt Management Access]
Identity=unix-user:fraterneo
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes

De paso esta configuración abre la posibilidad de administrar remotamente nuestro servidor Qemu-KVM haciendo uso de virt-manager desde otra estación de trabajo vía SSH.

Más información y recursos:
http://wiki.libvirt.org/page/SSHPolicyKitSetup#Configuring_management_access_via_PolicyKit
http://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html
http://virt-manager.org/

No hay comentarios:

Publicar un comentario