diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2013-07-02 13:04:54 -0400 |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2013-08-30 20:30:39 -0400 |
commit | 160da84dbb39443fdade7151bc63a88f8e953077 (patch) | |
tree | ddc0f7993f773a610b888a75b2a00a2520c053f9 /security | |
parent | dbef0c1c4c5f8ce5d1f5bd8cee092a7afb4ac21b (diff) |
userns: Allow PR_CAPBSET_DROP in a user namespace.
As the capabilites and capability bounding set are per user namespace
properties it is safe to allow changing them with just CAP_SETPCAP
permission in the user namespace.
Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
Tested-by: Richard Weinberger <richard@nod.at>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Diffstat (limited to 'security')
-rw-r--r-- | security/commoncap.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/security/commoncap.c b/security/commoncap.c index c44b6fe6648e..9fccf71b2b62 100644 --- a/security/commoncap.c +++ b/security/commoncap.c | |||
@@ -824,7 +824,7 @@ int cap_task_setnice(struct task_struct *p, int nice) | |||
824 | */ | 824 | */ |
825 | static long cap_prctl_drop(struct cred *new, unsigned long cap) | 825 | static long cap_prctl_drop(struct cred *new, unsigned long cap) |
826 | { | 826 | { |
827 | if (!capable(CAP_SETPCAP)) | 827 | if (!ns_capable(current_user_ns(), CAP_SETPCAP)) |
828 | return -EPERM; | 828 | return -EPERM; |
829 | if (!cap_valid(cap)) | 829 | if (!cap_valid(cap)) |
830 | return -EINVAL; | 830 | return -EINVAL; |