Bagaimana cara mencegah manajer virt dari meminta kata sandi root?

16

Saat memulai virt-manager, ia meminta kata sandi root.

Sepertinya virt-manager menyebabkan daemon libvirtd untuk menjalankan pkcheck dengan beberapa argumen, yang kemudian menampilkan dialog otentikasi ini. Jadi itu adalah PolicyKit yang meminta kata sandi root.

Situs web resmi (libvirt.org) menjelaskan cara mendefinisikan aturan PolicyKit untuk menghilangkan prompt kata sandi:

$ 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

Subdirektori "otoritas lokal" tidak ada. Membuatnya dan meletakkan file dengan nama dan konten itu (libvirt -> nama grup saya) di sana tampaknya tidak berpengaruh. Juga, ada file default, yang menggunakan sintaks JavaScript:

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

Paket ini diinstal pada sistem, ditambah beberapa frontend DE:

polkit-0.107-4.fc18.x86_64

Rupanya konfigurasi contoh di libvirt.org sudah usang?

Konfigurasi apa yang diperlukan untuk menghilangkan prompt kata sandi (untuk grup pengguna tertentu)?

basic6
sumber

Jawaban:

14

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

Anda harus melakukan langkah-langkah umum termasuk memulai kembalikit kebijakan dan memulai sesi baru dengan masing-masing pengguna setelah menambahkannya ke libvirtgrup.

Sepertinya sumber daya tentang Fedora 18 tetapi sudah menggunakan sintaks javascript sehingga kemungkinan besar berlaku untuk Fedora 19 juga.

Tautan:

Pavel Šimerda
sumber
1
Solusi ini berhasil! Terima kasih atas tautannya. Hadiah diberikan.
senorsmile
Maaf untuk pemformatan yang salah, perbaiki itu.
Pavel Šimerda
Bagaimana hal ini dibandingkan dengan menambahkan pengguna ke grup libvirt? Saya menguji menambahkan pengguna ke grup libvirt dan kemudian otentikasi tambahan tidak diperlukan.
jwbensley
1
@jwbensley Cara polkit dinamis dan memberikan izin kepada pemilik sesi lokal aktif. Cara grup statis dan memberikan hak istimewa kepada pengguna tertentu. Pilih cara yang Anda inginkan.
Pavel Šimerda
1

Prompt kata sandi dibuat untuk keamanan sistem sehingga jika Anda melakukan ini mungkin membuatnya rentan.

  1. Buat Groupgrup di mesin Anda. atau Anda dapat menjalankan "sudo groupadd -r Group" ini

  2. Anda dapat setiap pengguna yang Anda inginkan ke grup sistem ini dengan menjalankan "sudo usermod -a -G Group User"

  3. Sekarang Anda perlu membuat kebijakan PolicyKit kami yang akan memungkinkan pengguna Groupuntuk menjalankan virt-manager

Anda akan membuat file di jalur ini: "/ etc / polkit-1 / localauthority / 50-local.d / 50-org. Group-libvirt-local-access.pkla"
dan Anda akan meletakkan baris di bawah ini di dalamnya

[Izinkan Groupizin manajemen libvirt grup ]
Identity = unix-group: Group
Action = org.libvirt.unix.manage
ResultAny = yes
ResultInactive = yes
ResultActive = yes

Itu semua yang perlu Anda lakukan sekarang Anda bisa menjalankannya. Dan saya harap ini membantu Anda.

poqdavid
sumber
Ini solusi lama. Solusi ini TIDAK bekerja pada sistem operasi Linux berbasis systemd yang lebih baru, seperti Fedora 19 atau Current Arch. (Saya baru saja mengujinya. Bahkan tidak ada direktori otoritas lokal, dan membuat, subfolder dan file yang ditentukan tidak melakukan apa-apa).
senorsmile
@senorsmile Apakah Anda mengajukan laporan bug dengan Fedora 19?
Pavel Šimerda