[Libguestfs] [PATCH] v2v: ova: Make OVA directory public readable to work around libvirt bug (RHBZ#1375157).

Pino Toscano ptoscano at redhat.com
Mon Sep 12 11:51:42 UTC 2016


On Monday, 12 September 2016 11:53:26 CEST Richard W.M. Jones wrote:
> Only do this if running as root and if the backend is set
> to libvirt.
> ---
>  v2v/input_ova.ml | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/v2v/input_ova.ml b/v2v/input_ova.ml
> index 4f848e2..bb9cb1b 100644
> --- a/v2v/input_ova.ml
> +++ b/v2v/input_ova.ml
> @@ -104,6 +104,19 @@ object
>      (* Exploded path must be absolute (RHBZ#1155121). *)
>      let exploded = absolute_path exploded in
>  
> +    (* If virt-v2v is running as root, and the backend is libvirt, then
> +     * we have to chmod the directory to 0755 and files to 0644
> +     * so it is readable by qemu.qemu.  This is libvirt bug RHBZ#890291.
> +     *)
> +    if Unix.geteuid () = 0 then (
> +      let libguestfs_backend = (open_guestfs ())#get_backend () in
> +      if libguestfs_backend = "libvirt" then (
> +        warning (f_"making OVA directory public readable to workaround libvirt bug https://bugzilla.redhat.com/890291");
> +        let cmd = [ "chmod"; "-R"; "go=u,go-w"; exploded ] in
> +        ignore (run_command cmd)
> +      )
> +    );
> +

The problem is that if the ova is specified as directory, this will
change its permissions, which is not expected.

I'd put this once when creating tmpdir above, right after the
Mkdtemp.temp_dir for it: this way you don't need -R for chmod.

-- 
Pino Toscano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20160912/955f2524/attachment.sig>


More information about the Libguestfs mailing list