remove CONFIG_SECURITY_FILE_CAPABILITIES compile option
authorSerge E. Hallyn <serue@us.ibm.com>
Mon, 23 Nov 2009 22:21:30 +0000 (16:21 -0600)
committerJames Morris <jmorris@namei.org>
Tue, 24 Nov 2009 04:06:47 +0000 (15:06 +1100)
commitb3a222e52e4d4be77cc4520a57af1a4a0d8222d1
tree1c3d5df529a404636b996ef39c991c9b8813aa12
parent0bce95279909aa4cc401a2e3140b4295ca22e72a
remove CONFIG_SECURITY_FILE_CAPABILITIES compile option

As far as I know, all distros currently ship kernels with default
CONFIG_SECURITY_FILE_CAPABILITIES=y.  Since having the option on
leaves a 'no_file_caps' option to boot without file capabilities,
the main reason to keep the option is that turning it off saves
you (on my s390x partition) 5k.  In particular, vmlinux sizes
came to:

without patch fscaps=n:   53598392
without patch fscaps=y:   53603406
with this patch applied: 53603342

with the security-next tree.

Against this we must weigh the fact that there is no simple way for
userspace to figure out whether file capabilities are supported,
while things like per-process securebits, capability bounding
sets, and adding bits to pI if CAP_SETPCAP is in pE are not supported
with SECURITY_FILE_CAPABILITIES=n, leaving a bit of a problem for
applications wanting to know whether they can use them and/or why
something failed.

It also adds another subtly different set of semantics which we must
maintain at the risk of severe security regressions.

So this patch removes the SECURITY_FILE_CAPABILITIES compile
option.  It drops the kernel size by about 50k over the stock
SECURITY_FILE_CAPABILITIES=y kernel, by removing the
cap_limit_ptraced_target() function.

Changelog:
Nov 20: remove cap_limit_ptraced_target() as it's logic
was ifndef'ed.

Signed-off-by: Serge E. Hallyn <serue@us.ibm.com>
Acked-by: Andrew G. Morgan" <morgan@kernel.org>
Signed-off-by: James Morris <jmorris@namei.org>
include/linux/capability.h
include/linux/init_task.h
kernel/capability.c
security/Kconfig
security/commoncap.c