Як я можу запобігти тому, щоб virt-менеджер запитував пароль root?


18

Запускаючи virt-менеджер, він запитує пароль root.

Схоже, що virt-менеджер змушує демон libvirtd запустити pkcheck з парою аргументів, який потім показує це діалогове вікно автентифікації. Отже, саме PolicyKit запитує корінний пароль.

На офіційному веб-сайті (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

Підкаталога «локальна владність» не існувало. Створення його та розміщення файлу з таким ім'ям та вмістом (libvirt -> моє ім’я групи), здається, не має жодного ефекту. Також є файл за замовчуванням, який використовує синтаксис JavaScript:

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

Цей пакет встановлений у системі, а також декілька DE-фронтів:

polkit-0.107-4.fc18.x86_64

Мабуть, приклад конфігурації на libvirt.org застарів?

Яка конфігурація необхідна для позбавлення від запиту пароля (для певної групи користувачів)?

Відповіді:


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

Вам доведеться виконати загальні дії, включаючи перезапуск пакета політик та запуск нового сеансу з відповідним користувачем після додавання його до libvirtгрупи.

Схоже, ресурс стосується Fedora 18, але він вже використовує синтаксис javascript, тому він, ймовірно, дійсний і для Fedora 19.

Посилання:


1
Це рішення працює! Дякуємо також за посилання. Нагороджений баунті
senorsmile

Вибачте за неправильне форматування, виправте це.
Павло Шімерда

Як це порівнюється з додаванням користувача до групи libvirt? Я тестував додавання користувача до групи libvirt, і тоді додаткової автентифікації не потрібно.
jwbensley

1
@jwbensley Спосіб polkit є динамічним і надає дозволи власнику активного локального сеансу. Груповий спосіб є статичним і надає привілей цьому конкретному користувачеві. Вибирайте свої способи так, як вважаєте за потрібне.
Павло Шімерда

1

Захист пароля був зроблений для безпеки системи, тому якщо ви це зробите, це може зробити його вразливим.

  1. Створіть Groupгрупу на своєму пристрої. або ви можете запустити цей "sudo groupadd -r Group"

  2. Ви можете будь-якого користувача, якого ви хочете, до цієї системної групи, зазначаючи "sudo usermod -a -G Group User"

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

ви створите файл на цьому шляху: "/ 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 = так
ResultInactive = так
ResultActive = так ResultActive = так

Це все, що вам потрібно було зробити зараз, ви можете запустити його. І я сподіваюся, що це вам допоможе.


Це старе рішення. Це рішення НЕ працює у новіших операційних системах на базі системних систем Linux, таких як Fedora 19 або Current Arch. (Я щойно перевірив це. Існує навіть не каталог локального авторитету, а створення, підпапка та вказаний файл нічого не роблять).
senorsmile

@senorsmile Ви подали звіт про помилку в Fedora 19?
Павло Шімерда
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.