QEMU+KVM:运行 virsh list --all 后出现两个错误,似乎是权限错误

QEMU+KVM:运行 virsh list --all 后出现两个错误,似乎是权限错误

运行后virsh list --all,出现以下错误:

error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied

这是我运行后得到的结果ls -la /var/run/libvirt/

total 0
drwxr-xr-x 12 root root     380 Jan 19 20:28 .
drwxr-xr-x 40 root root    1100 Jan 19 20:28 ..
drwx------  2 root root      60 Jan 19 20:28 common
drwxr-xr-x  2 root root      40 Jan 19 20:28 hostdevmgr
drwx------  2 root root      60 Jan 19 20:28 interface
srw-------  1 root root       0 Jan 19 20:28 libvirt-admin-sock
srw-rw----  1 root libvirt    0 Jan 19 20:28 libvirt-sock
srw-rw-rw-  1 root root       0 Jan 19 20:28 libvirt-sock-ro
drwxr-xr-x  2 root root     140 Jan 19 20:28 network
drwx------  2 root root      60 Jan 19 20:28 nodedev
drwx------  2 root root      60 Jan 19 20:28 nwfilter
drwx------  2 root root      40 Jan 19 20:28 nwfilter-binding
drwxr-xr-x  4 root root     120 Jan 19 20:28 qemu
drwx------  2 root root      60 Jan 19 20:28 secrets
drwxr-xr-x  2 root root      80 Jan 19 20:28 storage
srw-------  1 root root       0 Jan 19 20:28 virtlockd-admin-sock
srw-------  1 root root       0 Jan 19 20:28 virtlockd-sock
srw-------  1 root root       0 Jan 19 20:28 virtlogd-admin-sock
srw-------  1 root root       0 Jan 19 20:28 virtlogd-sock

答案1

安装 libvirt 时,允许使用的用户sudo将被添加到libvirt组中,这些用户可以访问套接字。其他所有人都被视为非特权用户。

如果您使用的用户当时不存在或不在 sudoers 组中,那么您还没有 libvirt 的组成员身份。您可以通过运行idwhich should list ... groups=...,129(libvirt)(数字可能有所不同)来检查。

如果不是,那么您需要将自己添加到该组(或请管理员这样做)。

类似的东西sudo usermod -a -G libvirt <youruser>应该这样做。

相关内容