[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] FIrst approximation of creating volumes directly with desired uid



|I've made an attempt to create storage volumes directly with the desired uid/gid (by forking a new process, calling setuid/setgid in that process, and then creating the file). Since it's sure to get ripped apart, I've put it up on gitorious rather than sending patches to the list.

The repository is:

git://gitorious.org/~laine/libvirt/laine-staging.git <git://gitorious.org/%7Elaine/libvirt/laine-staging.git>

and the branch is (in a quite non-sequiter fashion) "xml2xmltest"

Only the last 3 commits on the branch are related to this topic.

The first adds uid and gid args to virRun (and all related functions) so that new processes can be run as a different user. This is necessary for the cases where we call an external program to create the image (qemu-img, for example).

The second commit adds two new functions to util.c: virFileCreate and virDirCreate. In the case that the current process is running as root, and the caller has requested a different uid or gid for the new file/directory, these functions do the proper fork dance to get this done and return proper status to the caller.

The third commit uses the enhanced virRun, and the two new functions to change the way that storage volumes are created.

I've noted some of my concerns about doing things this way in a bugzilla report about the problem I'm trying to fix:

https://bugzilla.redhat.com/show_bug.cgi?id=547543


|


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]