-
- Downloads
kernel: conditionally support non-root users, groups and capabilities
There are a lot of embedded systems that run most or all of their functionality in init, running as root:root. For these systems, supporting multiple users is not necessary. This patch adds a new symbol, CONFIG_MULTIUSER, that makes support for non-root users, non-root groups, and capabilities optional. It is enabled under CONFIG_EXPERT menu. When this symbol is not defined, UID and GID are zero in any possible case and processes always have all capabilities. The following syscalls are compiled out: setuid, setregid, setgid, setreuid, setresuid, getresuid, setresgid, getresgid, setgroups, getgroups, setfsuid, setfsgid, capget, capset. Also, groups.c is compiled out completely. In kernel/capability.c, capable function was moved in order to avoid adding two ifdef blocks. This change saves about 25 KB on a defconfig build. The most minimal kernels have total text sizes in the high hundreds of kB rather than low MB. (The 25k goes down a bit with allnoconfig, but not that much. The kernel was booted in Qemu. All the common functionalities work. Adding users/groups is not possible, failing with -ENOSYS. Bloat-o-meter output: add/remove: 7/87 grow/shrink: 19/397 up/down: 1675/-26325 (-24650) [akpm@linux-foundation.org: coding-style fixes] Signed-off-by:Iulia Manda <iulia.manda21@gmail.com> Reviewed-by:
Josh Triplett <josh@joshtriplett.org> Acked-by:
Geert Uytterhoeven <geert@linux-m68k.org> Tested-by:
Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by:
Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
Showing
- arch/s390/Kconfig 1 addition, 0 deletionsarch/s390/Kconfig
- drivers/staging/lustre/lustre/Kconfig 1 addition, 0 deletionsdrivers/staging/lustre/lustre/Kconfig
- fs/nfs/Kconfig 1 addition, 1 deletionfs/nfs/Kconfig
- fs/nfsd/Kconfig 1 addition, 0 deletionsfs/nfsd/Kconfig
- include/linux/capability.h 29 additions, 0 deletionsinclude/linux/capability.h
- include/linux/cred.h 19 additions, 4 deletionsinclude/linux/cred.h
- include/linux/uidgid.h 12 additions, 0 deletionsinclude/linux/uidgid.h
- init/Kconfig 18 additions, 1 deletioninit/Kconfig
- kernel/Makefile 3 additions, 1 deletionkernel/Makefile
- kernel/capability.c 19 additions, 16 deletionskernel/capability.c
- kernel/cred.c 3 additions, 0 deletionskernel/cred.c
- kernel/groups.c 0 additions, 3 deletionskernel/groups.c
- kernel/sys.c 2 additions, 0 deletionskernel/sys.c
- kernel/sys_ni.c 14 additions, 0 deletionskernel/sys_ni.c
- net/sunrpc/Kconfig 2 additions, 0 deletionsnet/sunrpc/Kconfig
- security/Kconfig 1 addition, 0 deletionssecurity/Kconfig
Loading
Please register or sign in to comment