Re: [PATCH] net: change capability used by socket options IP{,V6}_TRANSPARENT
flat view
From: Maciej Żenczykowski <hidden>
Date: 2011-09-23 19:33:43
Under what circumstances would a process that requires the new capability not require CAP_NET_ADMIN? Is there a real case where a process would be expected to require only this new capability? Adding new capability values is somewhat perilous and the granularity you are proposing, that of controlling a single bit, would explode the list of capabilities into the hundreds if it were applied throughout the kernel.
CAP_NET_ADMIN is a huge hammer, it allows one to totally reconfigure the networking subsystem. In a containerized multi-user/job environment, you do not want something like an instance of a load-balanced web server, proxy or dns server being able to do that - policy/configuration decisions should be left up to the administrator and/or machine management daemon(s). Each of these can make use of transparent sockets (in various ways, mostly in coordination with large scale load balancing). You also do not want one user running in one container being able to sniff (CAP_NET_RAW) traffic from another user (hence CAP_NET_RAW isn't an acceptable substitute). One could conceivably use network namespaces for seperation, but in this particular case they are _way_ too overkill (and also add too much overhead). This might be *just* a single bit in the socket, but this bit effectively controls whether you can do certain types of privileged operations on the socket in question - and it gets tested in various places throughout the networking stack. Hopefully, this answers your question. - Maciej