Virtual Machine Manager : qemu://system sans mot de passe
Table des matières
Virtual Machine Manager est un logiciel qui permet de gérer facilement les machines virtuelles Qemu/KVM à travers libvirt.
Il permet la gestion des machines virtuelles en se connectant à une session utilisateur qemu://user ou système qemu://system
Cependant, l'ouverture de la session qemu://system demande le mot de passe de l'utilisateur pour élever les privilèges à travers polkit :
Bien qu'on puisse utiliser une connexion bridge (virbr0) en qemu://user, il est nécessaire d'ouvrir la connexion qemu://system pour monter l'interface bridge.
Dans cet article nous allons voir comment inhiber le mot de passe pour l'élévation de privilèges dans le contexte de Virtual Machine Manager.
Si on utilise des machines virtuelles sur notre machine, on a normalement un group libvirt qui est créé sur la machine.
On va dans un premier temps placer notre utilisateur dedans :
Se déconnecter et se reconnecter pour prendre en compte les droits.
Une fois les prérequis complétés, si la demande du mot de passe est toujours formulée, on pourra créer une règle Polkit qui autorise l'élévation de privilèges sans mot de passe si on fait partie de ce groupe.
Pour cela, on va créer un fichier de règle Polkit qu'on peut appeler 90-libvirt.rules par exemple :
On va y créer la règle suivante :
Ainsi, l'élévation de provilège se fait sans mot de passe, uniquement pour l'action org.libvirt.unix.manage qui correspond à la gestion des VM via libvirt.
Introduction
Virtual Machine Manager est un logiciel qui permet de gérer facilement les machines virtuelles Qemu/KVM à travers libvirt.
Il permet la gestion des machines virtuelles en se connectant à une session utilisateur qemu://user ou système qemu://system
Cependant, l'ouverture de la session qemu://system demande le mot de passe de l'utilisateur pour élever les privilèges à travers polkit :
Bien qu'on puisse utiliser une connexion bridge (virbr0) en qemu://user, il est nécessaire d'ouvrir la connexion qemu://system pour monter l'interface bridge.
Dans cet article nous allons voir comment inhiber le mot de passe pour l'élévation de privilèges dans le contexte de Virtual Machine Manager.
Prérequis
Si on utilise des machines virtuelles sur notre machine, on a normalement un group libvirt qui est créé sur la machine.
On va dans un premier temps placer notre utilisateur dedans :
Code BASH :
sudo gpasswd -a $USER libvirt
Se déconnecter et se reconnecter pour prendre en compte les droits.
Créer la règle polkit
Une fois les prérequis complétés, si la demande du mot de passe est toujours formulée, on pourra créer une règle Polkit qui autorise l'élévation de privilèges sans mot de passe si on fait partie de ce groupe.
Pour cela, on va créer un fichier de règle Polkit qu'on peut appeler 90-libvirt.rules par exemple :
Code BASH :
sudo vim /etc/polkit-1/rules.d/90-libvirt.rules
On va y créer la règle suivante :
Code JAVASCRIPT :
polkit.addRule(function(action, subject) { if (action.id == "org.libvirt.unix.manage" && subject.local && subject.active && subject.isInGroup("libvirt")) { return polkit.Result.YES; } });
Ainsi, l'élévation de provilège se fait sans mot de passe, uniquement pour l'action org.libvirt.unix.manage qui correspond à la gestion des VM via libvirt.