Как я могу запретить virt-manager запрашивать пароль root?

14296
basic6

При запуске virt-manager запрашивает пароль root.

Похоже, что virt-manager заставляет демон libvirtd запустить pkcheck с парой аргументов, который затем показывает это диалоговое окно аутентификации. Так что это PolicyKit, который просит пароль root.

Официальный сайт (libvirt.org) описывает, как определить правило PolicyKit, чтобы избавиться от запроса пароля:

$ 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 

Подкаталог "localauthority" не существует. Создание и размещение файла с таким именем и содержимым (libvirt -> my group name) там, похоже, не имеет никакого эффекта. Также есть файл по умолчанию, который использует синтаксис JavaScript:

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

Этот пакет установлен в системе, плюс несколько внешних интерфейсов DE:

polkit-0.107-4.fc18.x86_64 

Видимо пример конфигурации на libvirt.org устарел?

Какая конфигурация необходима, чтобы избавиться от запроса пароля (для определенной группы пользователей)?

15

2 ответа на вопрос

13
Pavel Šimerda

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

Вам нужно будет выполнить общие шаги, включая перезапуск policykit и запуск нового сеанса с соответствующим пользователем после добавления его в libvirtгруппу.

Похоже, что ресурс посвящен Fedora 18, но в нем уже используется синтаксис javascript, поэтому он, скорее всего, подходит и для Fedora 19.

Ссылки:

Это решение работает! Спасибо за ссылки, а также. Награда присуждается. senorsmile 10 лет назад 1
Извините за неправильное форматирование, исправлено. Pavel Šimerda 10 лет назад 0
Как это сравнить с добавлением пользователя в группу libvirt? Я протестировал добавление пользователя в группу libvirt, а затем дополнительная аутентификация не требовалась. jwbensley 7 лет назад 0
@jwbensley Метод polkit является динамическим и дает разрешения владельцу активного локального сеанса. Групповой способ является статическим и дает привилегию этому конкретному пользователю. Выберите ваши пути, как вы считаете нужным. Pavel Šimerda 7 лет назад 1
1
poqdavid

Запрос пароля был сделан для безопасности системы, поэтому, если вы сделаете это, это может сделать его уязвимым.

  1. Создайте Groupгруппу на своей машине. или вы можете запустить эту "sudo groupadd -r Group"

  2. Вы можете добавить любого пользователя в эту системную группу, выполнив «sudo usermod -a -G Group User»

  3. Теперь вам нужно создать нашу политику PolicyKit, которая позволит пользователям Groupзапускать virt-manager.

вы создадите файл по этому пути: "/ etc / polkit-1 / localauthority / 50-local.d / 50-org. Group-libvirt-local-access.pkla"
и поместите в него строки ниже

[Разрешить групповые Groupразрешения на управление libvirt]
Identity = unix-group: Group
Action = org.libvirt.unix.manage
ResultAny = yes
ResultInactive = yes
ResultActive = yes

Это все, что вам нужно было сделать, теперь вы можете запустить его. И я надеюсь, что это поможет вам.

Это старое решение. Это решение НЕ работает на более новых операционных системах Linux на основе systemd, таких как Fedora 19 или Current Arch. (Я только что проверил. Там даже нет локальной директории полномочий, а при создании подпапка и указанный файл ничего не делают). senorsmile 10 лет назад 0
@senorsmile Вы подали отчет об ошибке в Fedora 19? Pavel Šimerda 10 лет назад 0

Похожие вопросы