qemu_shim: Allow other users to enter the root dir

When virt-qemu-run is ran without any root directory specified on
the command line, a temporary directory is made and used instead.
But since we are using g_dir_make_tmp() to create the directory
it is going to have 0700 mode. So even though we create the whole
directory structure under it and label everything, QEMU is very
likely to not have the access. This is because in this case there
is no qemu.conf and thus distro default UID:GID is used to run
QEMU (e.g. qemu:kvm on Fedora). Change the mode of the temporary
directory so that everybody has eXecute permission.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
This commit is contained in:
Michal Privoznik 2020-02-28 14:42:44 +01:00
parent 6799b72d92
commit 63af64d78d

View File

@ -158,6 +158,12 @@ int main(int argc, char **argv)
return 1;
}
tmproot = true;
if (chmod(root, 0755) < 0) {
g_printerr("%s: cannot chown temporary dir: %s\n",
argv[0], g_strerror(errno));
goto cleanup;
}
}
virFileActivateDirOverrideForProg(argv[0]);