mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
virSetUIDGIDWithCaps: Assume PR_CAPBSET_DROP is always defined
Bounding set capabilities were introduced in kernel commit of v2.6.25-rc1~912. I guess it is safe to assume that all Linux hosts we ran on have at least that version or newer. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
parent
dfa1e9b3eb
commit
e3c05984f2
@ -1182,13 +1182,12 @@ virSetUIDGIDWithCaps(uid_t uid, gid_t gid, gid_t *groups, int ngroups,
|
|||||||
need_setuid = true;
|
need_setuid = true;
|
||||||
capng_update(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, CAP_SETUID);
|
capng_update(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, CAP_SETUID);
|
||||||
}
|
}
|
||||||
# ifdef PR_CAPBSET_DROP
|
|
||||||
/* If newer kernel, we need also need setpcap to change the bounding set */
|
/* We need also need setpcap to change the bounding set */
|
||||||
if (!capng_have_capability(CAPNG_EFFECTIVE, CAP_SETPCAP)) {
|
if (!capng_have_capability(CAPNG_EFFECTIVE, CAP_SETPCAP)) {
|
||||||
need_setpcap = true;
|
need_setpcap = true;
|
||||||
capng_update(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, CAP_SETPCAP);
|
capng_update(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, CAP_SETPCAP);
|
||||||
}
|
}
|
||||||
# endif
|
|
||||||
|
|
||||||
/* Tell system we want to keep caps across uid change */
|
/* Tell system we want to keep caps across uid change */
|
||||||
if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0)) {
|
if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user