web-dev-qa-db-ja.com

KVMゲストを100%非rootユーザーとして作成するにはどうすればよいですか?

多くのユーザーがいるdebianホストでは、異なるユーザーが完全に独立した独自のVMを作成できるようにしたいと思います。

私がガイドで見た最も関連性の高い(非ルート)方法は、qemu:///systemハイパーバイザー。これは、すべてのユーザー間で共有されるシステムハイパーバイザーです。さらに、ディスクイメージファイルはroot(またはkvm)ユーザーが所有します。つまり、ディスクイメージファイルの場所へのファイルシステムパス全体が誰でも読み取り可能でなければなりません。

上記およびその他の理由により、VMを純粋かつ完全に非rootユーザーとして実行したい。それはqemu:///session。だから主な質問はどうすればいいですか?使用できるガイドはありますか?

私は新しい仮想ブリッジifaceを作成しようと試みましたが、私がnetdevグループのメンバーであるにもかかわらず、次のことを行うと、「許可が拒否されました」というエラーが発生します。

 virsh -c qemu:///session net-create /etc/libvirt/qemu/networks/mynet.xml

mynet.xmlはデフォルトのネットワークと同じですが、サブネットが異なります。

5
nass

使用しているのはKVM=直接ではなく、libvirtという管理ライブラリです。

ホスト上のvirshグループとlibvirtdグループにユーザーを追加することで、libvirtのセットアップにアクセスできるユーザーを指定できます(したがって、VMを作成し、ほとんどの場合kvmコマンドを実行します)。

policykitを使用してアクセスを管理することもできます。手順はlibvirt Wikiで説明されています。 SSHPolicyKitSetup | Libvirt Wiki

4
dyasny

KVMの場合、デバイスにアクセスする必要があります/dev/kvm。ユーザーがこのデバイスに読み書きできる場合、ルート権限なしでKVMベースの仮想マシンを実行できます。

ほとんどのディストリビューションでは、kvmグループのメンバーがこのデバイスにアクセスできるため、ユーザーをkvmグループに追加するだけで済みます。

4