[libvirt] [PATCH] qemu: Allow serving VNC over a unix domain socket

Daniel P. Berrange berrange at redhat.com
Mon Jan 10 18:14:55 UTC 2011


On Mon, Jan 10, 2011 at 12:15:59PM -0500, Cole Robinson wrote:
> QEMU supports serving VNC over a unix domain socket rather than traditional
> TCP host/port. This is specified with:
> 
> <graphics type='vnc' socket='/foo/bar/baz'/>
> 
> Currently not hooked up with the security driver, I'll wait for Dan's
> big reorg. I also have a virtinst/virt-manager patch queued locally to
> handle this change.

Actually there's nothing you can do with UNIX sockets that QEMU
itself is responsible for creating. You just have to make sure
you place them in a directory that is labelled virt_image_t
and then rely on the policy doing correct labelling. cf the UNIX
socket used for the monitor.

> To be useful, we probably want a qemu.conf option to use sockets as the
> default VNC method, so VMs without hardcoded listen addresses will
> magically start up serving over a socket in /var/lib/libvirt/qemu. This
> provides better security access control than VNC listening on 127.0.0.1, but
> will cause issues with tools that rely on the lax security (virt-manager
> in fedora runs as regular user by default, and wouldn't be able to access
> a socket owned by 'qemu' or 'root').

Yes, we'd want a qemu.conf option for this, though not enabled by
default due to the problem you mention. The only current approach
is to make your desktop user be a member of the 'qemu' group which
isn't entirely satisfactory for qemu://system. Works nicely for
qemu://session though.


Daniel




More information about the libvir-list mailing list