|
@@ -826,6 +826,11 @@ static bool new_idmap_permitted(const struct file *file,
|
|
kuid_t uid = make_kuid(ns->parent, id);
|
|
kuid_t uid = make_kuid(ns->parent, id);
|
|
if (uid_eq(uid, cred->euid))
|
|
if (uid_eq(uid, cred->euid))
|
|
return true;
|
|
return true;
|
|
|
|
+ } else if (cap_setid == CAP_SETGID) {
|
|
|
|
+ kgid_t gid = make_kgid(ns->parent, id);
|
|
|
|
+ if (!(ns->flags & USERNS_SETGROUPS_ALLOWED) &&
|
|
|
|
+ gid_eq(gid, cred->egid))
|
|
|
|
+ return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|