Hi. As we all know, capabilities under Linux are currently crippled to the point of being useless. Attached is a patch (against 2.6.18-rc6) which attempts to make them work in a reasonably useful way and at the same time not break anything. On top of the "additional" capabilities that lead up to root, it also adds "regular" capabilities which all processes have by default and which can be removed from specifically untrusted programs. All the gory details as to what it does are explained on this page: In short: currently (i.e., prior to applying this patch), Linux has capabilities, but they are (deliberately) crippled, and thus, essentially useless, because nobody could agree on coherent semantics for them; this patch uncripples them and attempts to give them reasonable semantics that will, hopefully, neither break legacy Unix programs nor those that use the current capabilies system (essentially, Bind9); basically, capabilities are currently useless because they are never inheritable (=preserved across execve()) and this patch makes them so (but carefully enough so as not to confuse existing programs). Furthermore, whereas the current Linux capabilities are only "additional" capabilities (meaning that normal, non-root, processes, have none, and adding capabilities leads up to root), the patch also suggests (and, to some extent, implements) a new bunch of "regular" capabilites, which are present on all normal processes and can be removed so as to provide some measure of fault-containment for partially untrusted or potentially buggy programs (thus, these new capabilities can be said to lead down). Note: Although I believe that this patch will not break anything, it is still little tested and should be considered alpha quality: it should on no account be applied on security-critical systems or on a system were local users are not to be trusted: the security implications are quite complex and I could quite possibly be wrong in thinking that it doesn't open any local root hole. I'd be glad if some people could review this and check my reasoning attempting to prove that it won't open any security holes (or, on the contrary, exhibit some). I'd also be glad if someone had a test suite that could be used to check that traditional Unix behavior isn't broken after applying the patch. Comments are welcome, -- David A. Madore (david.madore@ens.fr, http://www.madore.org/~david/ )