ルートはスーパーユーザー以外のKVMゲストを認識しません

ルートはスーパーユーザー以外のKVMゲストを認識しません

なぜ root は一般ユーザーの KVM ゲストについて知らないのですか?

user@Lin0011:~$ virsh list --all
 Id   Name         State
-----------------------------
 -    Lin0021   shut off

user@Lin0011:~$ 
root@Lin011# virsh list --all
 Id   Name   State
--------------------

root@Lin011# 
user@Lin0011:~$ virsh uri
qemu:///session

user@Lin0011:~$ 
user@Lin0011:~$ 
user@Lin0011:~$ env | grep VIR
user@Lin0011:~$ 
root@Lin011# virsh uri
qemu:///system

root@Lin011# 
root@Lin011# 
root@Lin011# env | grep VIR
root@Lin011# 


答え1

なぜ root は一般ユーザーの KVM ゲストについて知らないのですか?

これは、コマンドがvirsh現在のユーザーのコンテキストで機能するためです。

任意のユーザー (例: root) が別のユーザーのコンテキストでコマンドを実行するには、そのユーザーのコンテキストでコマンドを実行する必要があります。

これを可能にするにはpkexec、コマンドが役立ちます。Debian システムを使用している場合、最初の手順は次のようにインストールすることです。

sudo apt install pkexec

使用していない他のディストリビューションを使用している場合は、代わりにaptディストリビューションのパッケージマネージャを使用してインストールしてください。pkexecapt

そうでない場合はroot、 にログインしてrootテストしてください。

sudo -s

そして、そのコマンドを次のユーザーのコンテキストで実行します。user

pkexec --user user virsh list --all

ユーザーの仮想マシンを出力する必要がありますuser

関連情報