¿Cómo evito que virt-manager solicite la contraseña de root?

18

Al iniciar virt-manager, solicita la contraseña de root.

Parece que virt-manager hace que el demonio libvirtd ejecute pkcheck con un par de argumentos, que luego muestran este diálogo de autenticación. Entonces, PolicyKit está pidiendo la contraseña de root.

El sitio web oficial (libvirt.org) describe cómo definir una regla PolicyKit para deshacerse de la solicitud de contraseña:

$ sudo cat /etc/polkit-1/localauthority/50-local.d/50-org.example-libvirt-remote-access.pkla
[libvirt Management Access]
Identity=unix-group:libvirt
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes

El subdirectorio "autoridad local" no existía. Crearlo y poner un archivo con ese nombre y contenido (libvirt -> el nombre de mi grupo) no parece tener ningún efecto. Además, hay un archivo predeterminado, que utiliza la sintaxis de JavaScript:

/etc/polkit-1/rules.d/50-default.rules

Este paquete está instalado en el sistema, además de algunas interfaces de DE:

polkit-0.107-4.fc18.x86_64

Aparentemente, ¿la configuración de ejemplo en libvirt.org está desactualizada?

¿Qué configuración es necesaria para deshacerse de la solicitud de contraseña (para un grupo de usuarios específico)?

básico6
fuente

Respuestas:

16

/etc/polkit-1/rules.d/10.virt.rules:

polkit.addRule(function(action, subject) {
    if (action.id == "org.libvirt.unix.manage"
            && subject.local
            && subject.active
            && subject.isInGroup("libvirt")) {
        return polkit.Result.YES;
    }
});

Tendrá que realizar pasos comunes, incluido reiniciar el juego de políticas e iniciar una nueva sesión con el usuario respectivo después de agregarlo al libvirtgrupo.

Parece que el recurso es sobre Fedora 18, pero ya usa la sintaxis de JavaScript, por lo que probablemente también sea válido para Fedora 19.

Enlaces:

Pavel Šimerda
fuente
1
¡Esta solución funciona! Gracias por los enlaces también. Recompensa otorgada.
senorsmile
Perdón por el formato incorrecto, lo arreglé.
Pavel Šimerda
¿Cómo se compara esto con agregar al usuario al grupo libvirt? Probé agregando al usuario al grupo libvirt y luego no se requirió la autenticación adicional.
jwbensley
1
@jwbensley La forma polkit es dinámica y otorga los permisos al propietario de la sesión local activa. La forma grupal es estática y otorga el privilegio a ese usuario específico. Elija sus formas como mejor le parezca.
Pavel Šimerda
1

La solicitud de contraseña se realizó para la seguridad del sistema, por lo que si lo hace, podría hacerlo vulnerable.

  1. Crea el Groupgrupo en tu máquina. o puedes ejecutar este "sudo groupadd -r Group"

  2. Puede cualquier usuario que desee a este grupo de sistemas ejecutando "sudo usermod -a -G Group User"

  3. Ahora necesita crear nuestra política PolicyKit que permitirá a los usuarios Groupejecutar virt-manager

creará un archivo en esta ruta: "/ etc / polkit-1 / localauthority / 50-local.d / 50-org. Group-libvirt-local-access.pkla"
y pondrá líneas debajo en él

[Permitir Grouppermisos de administración de grupo libvirt]
Identity = unix-group: Group
Action = org.libvirt.unix.manage
ResultAny = yes
ResultInactive = yes
ResultActive = yes

Eso es todo lo que necesita hacer ahora, puede ejecutarlo. Y espero que esto te ayude.

poqdavid
fuente
Esta es la vieja solución. Esta solución NO funciona en los sistemas operativos Linux más nuevos basados ​​en systemd, como Fedora 19 o Current Arch. (Acabo de probarlo. Ni siquiera hay un directorio de autoridad local, y la creación, la subcarpeta y el archivo especificado no hacen nada).
senorsmile
@senorsmile ¿Presentó un informe de error con Fedora 19?
Pavel Šimerda