Wie verhindere ich, dass virt-manager nach dem root-Passwort fragt?

18

Beim Start von virt-manager werden Sie nach dem root-Passwort gefragt.

Es sieht so aus, als würde virt-manager den libvirtd-Daemon veranlassen, pkcheck mit ein paar Argumenten auszuführen, woraufhin dieser Authentifizierungsdialog angezeigt wird. PolicyKit fragt also nach dem Root-Passwort.

Auf der offiziellen Website (libvirt.org) wird beschrieben, wie Sie eine PolicyKit-Regel definieren, um die Kennworteingabeaufforderung zu entfernen:

$ 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

Das Unterverzeichnis "localauthority" existiert nicht. Das Anlegen und Ablegen einer Datei mit diesem Namen und Inhalt (libvirt -> mein Gruppenname) dort scheint keine Wirkung zu haben. Es gibt auch eine Standarddatei, die JavaScript-Syntax verwendet:

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

Dieses Paket ist auf dem System installiert, plus ein paar DE-Frontends:

polkit-0.107-4.fc18.x86_64

Anscheinend ist die Beispielkonfiguration auf libvirt.org veraltet?

Welche Konfiguration ist erforderlich, um die Kennworteingabeaufforderung zu entfernen (für eine bestimmte Benutzergruppe)?

basic6
quelle

Antworten:

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;
    }
});

Sie müssen allgemeine Schritte ausführen, einschließlich eines Neustarts von policykit und des Starts einer neuen Sitzung mit dem jeweiligen Benutzer, nachdem Sie ihn der libvirtGruppe hinzugefügt haben .

Anscheinend handelt es sich bei der Ressource um Fedora 18, es wird jedoch bereits die Javascript-Syntax verwendet, sodass sie höchstwahrscheinlich auch für Fedora 19 gilt.

Links:

Pavel Šimerda
quelle
1
Diese Lösung funktioniert! Danke auch für die Links. Kopfgeld vergeben.
Senorsmile
Sorry für die falsche Formatierung, das wurde behoben.
Pavel Šimerda
Wie ist dies mit dem Hinzufügen des Benutzers zur libvirt-Gruppe zu vergleichen? Ich habe das Hinzufügen des Benutzers zur libvirt-Gruppe getestet und dann war die zusätzliche Authentifizierung nicht erforderlich.
Jwbensley
1
@jwbensley Das Polkit-Verfahren ist dynamisch und erteilt dem Besitzer der aktiven lokalen Sitzung die Berechtigungen. Die Gruppenmethode ist statisch und gibt diesem bestimmten Benutzer die Berechtigung. Wählen Sie Ihre Möglichkeiten, wie Sie es für richtig halten.
Pavel Šimerda
1

Die Kennworteingabeaufforderung wurde aus Gründen der Systemsicherheit erstellt. Andernfalls ist das System möglicherweise anfällig.

  1. Erstellen Sie die GroupGruppe auf Ihrem Computer. oder Sie können dieses "sudo groupadd -r Group" ausführen

  2. Sie können jeden beliebigen Benutzer zu dieser Systemgruppe hinzufügen, indem Sie "sudo usermod -a -G Group User" ausführen.

  3. Jetzt müssen Sie unsere PolicyKit-Richtlinie erstellen, mit der die Benutzer Groupvirt-manager ausführen können

Sie erstellen eine Datei unter folgendem Pfad: "/ etc / polkit-1 / localauthority / 50-local.d / 50-org. Group-libvirt-local-access.pkla" . Darin
werden die folgenden Zeilen eingefügt

[ GroupBerechtigungen für die Verwaltung von
Gruppen- Group
Libvirts
zulassen ] Identität = Unix-Gruppe: Aktion = org.libvirt.unix.manage ResultAny = yes
ResultInactive = yes
ResultActive = yes

Das ist alles, was Sie jetzt tun müssen, können Sie es ausführen. Und ich hoffe das hilft dir.

poqdavid
quelle
Das ist die alte Lösung. Diese Lösung funktioniert NICHT auf neueren systembasierten Linux-Betriebssystemen wie Fedora 19 oder Current Arch. (Ich habe es gerade getestet. Es gibt nicht einmal ein lokales Verzeichnis, und das Erstellen des Unterordners und der angegebenen Datei bewirken nichts.)
Senorsmile
@senorsmile Haben Sie einen Fehlerbericht bei Fedora 19 eingereicht?
Pavel Šimerda