1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2024-12-26 03:21:44 +03:00

Add configuration option to turn off dynamic permissions management

Add the ability to turn off dynamic management of file permissions
for libvirt guests.

* qemu/libvirtd_qemu.aug: Support 'dynamic_ownership' flag
* qemu/qemu.conf: Document 'dynamic_ownership' flag.
* qemu/qemu_conf.c: Load 'dynamic_ownership' flag
* qemu/test_libvirtd_qemu.aug: Test 'dynamic_ownership' flag
This commit is contained in:
Daniel P. Berrange 2010-01-13 17:41:36 +00:00
parent 2df1657686
commit 5b6782f941
4 changed files with 20 additions and 3 deletions

View File

@ -32,6 +32,7 @@ module Libvirtd_qemu =
| str_entry "security_driver" | str_entry "security_driver"
| str_entry "user" | str_entry "user"
| str_entry "group" | str_entry "group"
| bool_entry "dynamic_ownership"
| str_array_entry "cgroup_controllers" | str_array_entry "cgroup_controllers"
| str_array_entry "cgroup_device_acl" | str_array_entry "cgroup_device_acl"
| str_entry "save_image_format" | str_entry "save_image_format"

View File

@ -96,6 +96,11 @@
# The group ID for QEMU processes run by the system instance # The group ID for QEMU processes run by the system instance
#group = "root" #group = "root"
# Whether libvirt should dynamically change file ownership
# to match the configured user/group above. Defaults to 1.
# Set to 0 to disable file ownership changes.
#dynamic_ownership = 1
# What cgroup controllers to make use of with QEMU guests # What cgroup controllers to make use of with QEMU guests
# #

View File

@ -102,7 +102,9 @@ int qemudLoadDriverConfig(struct qemud_driver *driver,
char *group; char *group;
int i; int i;
/* Setup 2 critical defaults */ /* Setup critical defaults */
driver->dynamicOwnership = 1;
if (!(driver->vncListen = strdup("127.0.0.1"))) { if (!(driver->vncListen = strdup("127.0.0.1"))) {
virReportOOMError(NULL); virReportOOMError(NULL);
return -1; return -1;
@ -224,6 +226,7 @@ int qemudLoadDriverConfig(struct qemud_driver *driver,
} }
VIR_FREE(user); VIR_FREE(user);
p = virConfGetValue (conf, "group"); p = virConfGetValue (conf, "group");
CHECK_TYPE ("group", VIR_CONF_STRING); CHECK_TYPE ("group", VIR_CONF_STRING);
if (!(group = strdup(p && p->str ? p->str : QEMU_GROUP))) { if (!(group = strdup(p && p->str ? p->str : QEMU_GROUP))) {
@ -231,8 +234,6 @@ int qemudLoadDriverConfig(struct qemud_driver *driver,
virConfFree(conf); virConfFree(conf);
return -1; return -1;
} }
if (virGetGroupID(NULL, group, &driver->group) < 0) { if (virGetGroupID(NULL, group, &driver->group) < 0) {
VIR_FREE(group); VIR_FREE(group);
virConfFree(conf); virConfFree(conf);
@ -240,6 +241,12 @@ int qemudLoadDriverConfig(struct qemud_driver *driver,
} }
VIR_FREE(group); VIR_FREE(group);
p = virConfGetValue (conf, "dynamic_ownership");
CHECK_TYPE ("dynamic_ownership", VIR_CONF_LONG);
if (p) driver->dynamicOwnership = p->l;
p = virConfGetValue (conf, "cgroup_controllers"); p = virConfGetValue (conf, "cgroup_controllers");
CHECK_TYPE ("cgroup_controllers", VIR_CONF_LIST); CHECK_TYPE ("cgroup_controllers", VIR_CONF_LIST);
if (p) { if (p) {

View File

@ -86,6 +86,8 @@ user = \"root\"
group = \"root\" group = \"root\"
dynamic_ownership = 1
cgroup_controllers = [ \"cpu\", \"devices\" ] cgroup_controllers = [ \"cpu\", \"devices\" ]
cgroup_device_acl = [ \"/dev/null\", \"/dev/full\", \"/dev/zero\" ] cgroup_device_acl = [ \"/dev/null\", \"/dev/full\", \"/dev/zero\" ]
@ -184,6 +186,8 @@ relaxed_acs_check = 1
{ "#empty" } { "#empty" }
{ "group" = "root" } { "group" = "root" }
{ "#empty" } { "#empty" }
{ "dynamic_ownership" = "1" }
{ "#empty" }
{ "cgroup_controllers" { "cgroup_controllers"
{ "1" = "cpu" } { "1" = "cpu" }
{ "2" = "devices" } { "2" = "devices" }