In bug 2016527, we want to add the ability for libvirt to use nbdkit to provide network disks to qemu. However, when selinux is in enforcing mode, libvirt is unable to start the nbdkit process. We need an selinux policy change that will allow this.
Is libvirt using the nbdkit --selinux-label option and doing chcon on the socket? The manual recommends: nbdkit -U /tmp/sock --selinux-label=system_u:object_r:svirt_socket_t:s0 [etc] chcon system_u:object_r:svirt_image_t:s0 /tmp/sock See also https://libguestfs.org/nbdkit.1.html
The implementation has not been merged yet, but my branch does not currently use that option. Perhaps that's something else I'm missing. But we can't even get that far with selinux in enforcing mode since we're not allowed to run the binary.
Hi, Can you please reproduce the issue in permissive mode? # setenforce 0 And then collect AVC denials: # ausearch -i -m avc,user_avc,selinux_err,user_selinux_err -ts today Thanks
type=AVC msg=audit(03/14/2023 16:09:22.652:2212) : avc: denied { entrypoint } for pid=1019434 comm=rpc-libvirtd path=/usr/sbin/nbdkit dev="dm-1" ino=3145762 scontext=unconfined_u:unconfined_r:svirt_t:s0:c547,c919 tcontext=system_u:object_r:bin_t:s0 tclass=file permissive=1