我正在一台普通的 CentOS 机器上使用virsh
并virt-manager
管理一些 qemu/kvm 虚拟机。
我们的管理员的用户帐户被分配给该libvirt
组。这个方法用了很长一段时间,突然就失效了。一段时间以来,没有 root 权限的访问已经被打破。以用户身份运行:
$ virsh -c qemu:///system list --all
error: failed to connect to the hypervisor
error: Fehler vom Service: CheckAuthorization: Failed to open file “/proc/2020139/status”: No such file or directory
我查了一下libvirtd.conf
,看起来很正常。我可以看到/var/run/libvirt
按预期填充。
SELinux 已启用,但审核日志中没有条目,也setenforce 0
没有更改任何内容。
答案1
hidepid=2
因此,这与 polkit 由于挂载选项中的选项而无法访问其他进程的数据有关/proc
,因为 polkit 没有 root 权限。
有两种可能的解决方案:1)hidepid=0
在 proc 文件系统上使用 中的挂载选项/etc/fstab
,2) 验证您的 polkit 是否与 组一起运行polkitd
,然后保留 hidepid 选项并改为添加gid=polkitd
到这些选项中。这允许 polkitd 组中的用户忽略 hidepid 设置。