
Warum weiß Root nichts über die KVM-Gäste eines normalen Benutzers?
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#
Antwort1
Warum weiß Root nichts über die KVM-Gäste eines normalen Benutzers?
Das liegt daran, dass der Befehl virsh
im Kontext des aktuellen Benutzers funktioniert.
Damit ein beliebiger Benutzer (z. B. root
) den Befehl im Kontext eines anderen Benutzers ausführen kann, müssen wir den Befehl im Kontext dieses Benutzers ausführen.
Um dies zu ermöglichen pkexec
, kann dieser Befehl hilfreich sein. Wenn Sie ein Debian-System verwenden, besteht der erste Schritt darin, es wie folgt zu installieren:
sudo apt install pkexec
Wenn Sie eine andere Distribution verwenden, die nicht verwendet, apt
verwenden Sie zur Installation den Paketmanager Ihrer Distribution pkexec
anstelle vonapt
Wenn dies nicht der Fall ist root
, melden Sie sich root
zum Testen an:
sudo -s
Und führen Sie den Befehl im Kontext des Benutzers mit dem Namen aususer
pkexec --user user virsh list --all
Soll virtuelle Maschinen des Benutzers mit dem Namen ausgebenuser