diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2012-11-16 03:03:11 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-11-18 20:33:36 -0500 |
commit | b51642f6d77b131dc85d1d71029c3cbb5b07c262 (patch) | |
tree | 0f3feb16dad1cd729dff368396ee90cd424797a1 /net/ipv4 | |
parent | c027aab4a6b1fe2541090ac04bee8ad246aeef70 (diff) | |
download | op-kernel-dev-b51642f6d77b131dc85d1d71029c3cbb5b07c262.zip op-kernel-dev-b51642f6d77b131dc85d1d71029c3cbb5b07c262.tar.gz |
net: Enable a userns root rtnl calls that are safe for unprivilged users
- Only allow moving network devices to network namespaces you have
CAP_NET_ADMIN privileges over.
- Enable creating/deleting/modifying interfaces
- Enable adding/deleting addresses
- Enable adding/setting/deleting neighbour entries
- Enable adding/removing routes
- Enable adding/removing fib rules
- Enable setting the forwarding state
- Enable adding/removing ipv6 address labels
- Enable setting bridge parameter
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/devinet.c | 6 | ||||
-rw-r--r-- | net/ipv4/fib_frontend.c | 6 |
2 files changed, 0 insertions, 12 deletions
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index 298c1c2..e13183a 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c @@ -539,9 +539,6 @@ static int inet_rtm_deladdr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg ASSERT_RTNL(); - if (!capable(CAP_NET_ADMIN)) - return -EPERM; - err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFA_MAX, ifa_ipv4_policy); if (err < 0) goto errout; @@ -649,9 +646,6 @@ static int inet_rtm_newaddr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg ASSERT_RTNL(); - if (!capable(CAP_NET_ADMIN)) - return -EPERM; - ifa = rtm_to_ifaddr(net, nlh); if (IS_ERR(ifa)) return PTR_ERR(ifa); diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c index 784716a..5cd75e2 100644 --- a/net/ipv4/fib_frontend.c +++ b/net/ipv4/fib_frontend.c @@ -613,9 +613,6 @@ static int inet_rtm_delroute(struct sk_buff *skb, struct nlmsghdr *nlh, void *ar struct fib_table *tb; int err; - if (!capable(CAP_NET_ADMIN)) - return -EPERM; - err = rtm_to_fib_config(net, skb, nlh, &cfg); if (err < 0) goto errout; @@ -638,9 +635,6 @@ static int inet_rtm_newroute(struct sk_buff *skb, struct nlmsghdr *nlh, void *ar struct fib_table *tb; int err; - if (!capable(CAP_NET_ADMIN)) - return -EPERM; - err = rtm_to_fib_config(net, skb, nlh, &cfg); if (err < 0) goto errout; |