Jak zapobiec pytaniu virt-manager o hasło roota?

18

Podczas uruchamiania virt-manager pyta o hasło roota.

Wygląda na to, że virt-manager powoduje, że demon libvirtd uruchamia pkcheck z kilkoma argumentami, co następnie pokazuje okno dialogowe uwierzytelniania. Więc to PolicyKit prosi o hasło roota.

Oficjalna strona internetowa (libvirt.org) opisuje, jak zdefiniować regułę PolicyKit, aby pozbyć się pytania o hasło:

$ 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

Podkatalog „localauthority” nie istniał. Utworzenie go i umieszczenie tam pliku o takiej nazwie i treści (libvirt -> nazwa mojej grupy) nie wydaje się mieć żadnego efektu. Ponadto istnieje plik domyślny, który wykorzystuje składnię JavaScript:

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

Ten pakiet jest zainstalowany w systemie, a także kilka frontendów DE:

polkit-0.107-4.fc18.x86_64

Najwyraźniej przykładowa konfiguracja na libvirt.org jest nieaktualna?

Jaka konfiguracja jest niezbędna, aby pozbyć się pytania o hasło (dla określonej grupy użytkowników)?

podstawowy 6
źródło

Odpowiedzi:

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

Będziesz musiał wykonać typowe kroki, w tym zrestartować zestaw zasad i rozpocząć nową sesję z odpowiednim użytkownikiem po dodaniu go do libvirtgrupy.

Wygląda na to, że zasób dotyczy Fedory 18, ale już korzysta ze składni javascript, więc najprawdopodobniej działa również w Fedorze 19.

Spinki do mankietów:

Pavel Šimerda
źródło
1
To rozwiązanie działa! Dziękuję również za linki. Nagroda przyznana.
senorsmile
Przepraszamy za nieprawidłowe formatowanie, naprawiłem to.
Pavel Šimerda
Jak to się ma do dodania użytkownika do grupy libvirt? Przetestowałem dodanie użytkownika do grupy libvirt, a następnie dodatkowe uwierzytelnienie nie było wymagane.
jwbensley
1
@jwbensley Polkit jest dynamiczny i daje uprawnienia właścicielowi aktywnej sesji lokalnej. Sposób grupowania jest statyczny i daje uprawnienia temu konkretnemu użytkownikowi. Wybierz swoje sposoby według własnego uznania.
Pavel Šimerda
1

Pytanie o hasło zostało wprowadzone w celu zapewnienia bezpieczeństwa systemu, więc jeśli to zrobisz, może to spowodować zagrożenie.

  1. Utwórz Groupgrupę na swoim komputerze. lub możesz uruchomić ten „sudo groupadd -r Group

  2. Możesz użyć dowolnego użytkownika w tej grupie systemów, uruchamiając polecenie „sudo usermod -a -G Group User

  3. Teraz musisz utworzyć naszą politykę PolicyKit, która pozwoli użytkownikom Groupuruchomić virt-manager

utworzysz plik pod tą ścieżką: „/ etc / polkit-1 / localauthority / 50-local.d / 50-org. Group-libvirt-local-access.pkla”
i umieścisz w nim wiersze poniżej

[Zezwalaj grupowym Groupuprawnieniom do zarządzania libvirt]
Tożsamość = grupa uniksowa: Group
Akcja = org.libvirt.unix.manage
ResultAny = tak
ResultInactive = tak
ResultActive = tak

To wszystko, co musisz teraz zrobić, możesz uruchomić. Mam nadzieję, że to ci pomoże.

poqdavid
źródło
To jest stare rozwiązanie. To rozwiązanie NIE działa na nowszych systemach Linux opartych na systemie, takich jak Fedora 19 lub Current Arch. (Właśnie go przetestowałem. Nie ma nawet lokalnego katalogu autorytetów, a tworzenie, podfolder i określony plik nic nie robią).
senorsmile
@senorsmile Czy zgłosiłeś raport o błędzie w Fedorze 19?
Pavel Šimerda