我已经在 Ubuntu 18.04 机器上安装了 qemu-kvm 和 virt-manager。尝试将我的用户添加到 libvirt 组时出现以下错误:
sudo groupadd libvirt
groupadd: group 'libvirt' already exists
sudo adduser $USER libvirt
Adding user `xxxxxx' to group `libvirt' ...
gpasswd: group 'libvirt' does not exist in /etc/group
adduser: `/usr/bin/gpasswd -a xxxxxx libvirt' returned error code 3. Exiting.
cat /etc/group | grep libvirt
libvirt-qemu:x:64055:libvirt-qemu
libvirt-dnsmasq:x:134:
sudo cat /etc/gshadow | grep libvirt
kvm:!::libvirt-qemu
libvirt-dnsmasq:!::
libvirt-qemu:!::libvirt-qemu
答案1
也许还有其他命令删除了该组...我在 18.04.3 上安装了 qemu-kvm 和 virt-manager。我从组和 gshadow 中删除了它们。然后根据 @ChristianEhrhardt 的评论重新安装了 libvirt-daemon-system。重新安装后,组被重新添加,安装的用户被添加到组中。有帮助吗?
user$ grep libvirt /etc/group
libvirt-qemu:x:64055:libvirt-qemu
libvirt-dnsmasq:x:130:
user$ sudo grep libvirt /etc/gshadow
libvirt-qemu:!::libvirt-qemu
libvirt-dnsmasq:!::
user$ sudo apt-get install --reinstall libvirt-daemon-system
user$ grep libvirt /etc/group
libvirt-qemu:x:64055:libvirt-qemu
libvirt-dnsmasq:x:130:
libvirt:x:129:user
user$ sudo grep libvirt /etc/gshadow
libvirt-qemu:!::libvirt-qemu
libvirt-dnsmasq:!::
libvirt:!::user
答案2
我找到了解决问题的方法。错误与我的系统有关,libvirt 安装没有问题。有一个名为的组虚拟器在 AD 中我的系统正在进行身份验证。这导致在创建本地组和向其中添加用户时发生冲突。
解决方案是在 /etc/sssd/conf.d/10-libvirt.conf 中进行过滤
[nss]
filter_groups = libvirt
并重启 sssd 服务
systemctl restart sssd.service