On Thu, Feb 28, 2013 at 02:00:50PM +0000, Matthew Booth wrote:
On Thu, 2013-02-28 at 10:57 +0000, Richard W.M. Jones wrote:
> From: "Richard W.M. Jones" <rjones(a)redhat.com>
>
> If set, this causes <seclabel model=selinux relabel=no> to be added to
> the disk element in the libvirt XML.
>
> It has no effect *except* on the libvirt attach method when SELinux
> and sVirt is being used.
> ---
> generator/actions.ml | 8 +++++++-
> src/guestfs-internal.h | 1 +
> src/launch-libvirt.c | 20 ++++++++++++++++++++
> src/launch.c | 21 ++++++++++++++-------
> 4 files changed, 42 insertions(+), 8 deletions(-)
Is there any instance where we would *not* want to do this? Off the top
of my head, I can't think of a good reason for libguestfs to be in the
business of relabelling drives. Can we not just hard-code this off?
If, on the other hand, there is a good reason to make this option, I
think it should be explained in the docs below.
It's a tricky situation, but if libguestfs's appliance is confined by
sVirt, and if we're accessing an ordinary, non-shared disk, then you
have to have libvirt label the disk otherwise qemu won't be able to open it.
The situation here is different: we want to confine libguestfs's
appliance with sVirt, and access a shared disk which already has some
other label, so we label the appliance to conform to the disk. The
reason we don't want libvirt to label the disk is really a bug in
libvirt: when the libvirt connection is closed, it resets the label
*not* to what it was before, but to some other label. We want to tell
libvirt to leave it alone and not do this. So you can argue that the
need for this flag is to work around a bug in libvirt.
Another way to do this would be not to use svirt_t at all, but to have
some other process label (sguestfs_t) which has fewer restrictions
than svirt_t. The trick would be to make the confinement meaningful,
since the whole point of using sVirt with libguestfs is to confine the
appliance against the threat of rogue disk images. Also I guess this
would need deep changes to libvirt.
[Adding Dan & Dan]
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v