Linux
如何使用 libvirt 的 polkit?
我剛剛看到 libvirt 的 polkit 參考頁面並創建了以下規則
//content of /etc/polkit-1/rules.d/50-libvirt.rules polkit.addRule(function(action, subject) { if (action.id == "org.libvirt.api.domain.getattr" && subject.user == "dravigon") { if (action.lookup("connect_driver") == 'QEMU' && action.lookup("domain_name") == 'debian8') { return polkit.Result.YES; } else { return polkit.Result.NO; } }
});
希望限制使用者 dravigon 只能從 qemu/kvm 驅動程序訪問域 debian8
但它根本不起作用 誰能說出我哪裡出錯了
只是按照fedora polkit頁面中的說明發現他回答
我必須添加另一個塊似乎只有第二個塊沒有第一個塊是無用的
// Allow passwordless connection to qemu:///system polkit.addRule(function(action, subject) { if (action.id == "org.libvirt.unix.manage" && subject.user == "MY-USER") { return polkit.Result.YES; } }); // Give full access to 'test-day-vm' polkit.addRule(function(action, subject) { if (action.id.indexOf("org.libvirt.api.domain.") == 0 && subject.user == "MY_USER") { if (action.lookup("connect_driver") == 'QEMU' && action.lookup("domain_name") == 'test-day-vm') { return polkit.Result.YES; } else { return polkit.Result.NO; } } });