如何创建每个用户虚拟机隔离的环境

Dra*_*gon 5 linux libvirt kvm-virtualization

我想知道是否可以使用 KVM libvirt 创建一个多用户环境
,即每个用户都可以创建自己的虚拟机,但其他人不能访问它,
看到这个多用户使用 virt-manager
似乎不起作用
EDIT1:我想要为每个虚拟机设置所有者

Dra*_*gon 0

该文件作为 polkit 规则

function myFunction(username, virtualmachine) {
var arr = virtualmachine.split("*");
if(arr[0]==username){
    return true;
    }
else{
    return false;
   }
}
// Allow passwordless connection to qemu:///system
polkit.addRule(function(action, subject) {
  if (action.id == "org.libvirt.unix.manage")
   {
        return polkit.Result.YES;
        }
    });
// Give full access to 'vm'
polkit.addRule(function(action, subject) {
if (action.id.indexOf("org.libvirt.api.domain.") == 0 ) {
      if (action.lookup("connect_driver") == 'QEMU' &&  myFunction(subject.user, action.lookup("domain_name"))) {
            polkit.log("vm=" + action.lookup("domain_name") + "action =>"+myFunction(subject.user, action.lookup("domain_name")));
            polkit.log("subject=" + subject);
            polkit.log("ok");
        return polkit.Result.YES;
      } else {
        return polkit.Result.NO;
      }
      }
});
Run Code Online (Sandbox Code Playgroud)

这里的虚拟机格式为

用户名*虚拟机名称

该虚拟机只能由相应的用户访问

PS这只是原始规则,即您不能创建新池或修改它等,因此需要进一步开发规则