| config SECURITY_SELINUX | 
 | 	bool "NSA SELinux Support" | 
 | 	depends on SECURITY_NETWORK && AUDIT && NET && INET | 
 | 	select NETWORK_SECMARK | 
 | 	default n | 
 | 	help | 
 | 	  This selects NSA Security-Enhanced Linux (SELinux). | 
 | 	  You will also need a policy configuration and a labeled filesystem. | 
 | 	  If you are unsure how to answer this question, answer N. | 
 |  | 
 | config SECURITY_SELINUX_BOOTPARAM | 
 | 	bool "NSA SELinux boot parameter" | 
 | 	depends on SECURITY_SELINUX | 
 | 	default n | 
 | 	help | 
 | 	  This option adds a kernel parameter 'selinux', which allows SELinux | 
 | 	  to be disabled at boot.  If this option is selected, SELinux | 
 | 	  functionality can be disabled with selinux=0 on the kernel | 
 | 	  command line.  The purpose of this option is to allow a single | 
 | 	  kernel image to be distributed with SELinux built in, but not | 
 | 	  necessarily enabled. | 
 |  | 
 | 	  If you are unsure how to answer this question, answer N. | 
 |  | 
 | config SECURITY_SELINUX_BOOTPARAM_VALUE | 
 | 	int "NSA SELinux boot parameter default value" | 
 | 	depends on SECURITY_SELINUX_BOOTPARAM | 
 | 	range 0 1 | 
 | 	default 1 | 
 | 	help | 
 | 	  This option sets the default value for the kernel parameter | 
 | 	  'selinux', which allows SELinux to be disabled at boot.  If this | 
 | 	  option is set to 0 (zero), the SELinux kernel parameter will | 
 | 	  default to 0, disabling SELinux at bootup.  If this option is | 
 | 	  set to 1 (one), the SELinux kernel parameter will default to 1, | 
 | 	  enabling SELinux at bootup. | 
 |  | 
 | 	  If you are unsure how to answer this question, answer 1. | 
 |  | 
 | config SECURITY_SELINUX_DISABLE | 
 | 	bool "NSA SELinux runtime disable" | 
 | 	depends on SECURITY_SELINUX | 
 | 	select SECURITY_WRITABLE_HOOKS | 
 | 	default n | 
 | 	help | 
 | 	  This option enables writing to a selinuxfs node 'disable', which | 
 | 	  allows SELinux to be disabled at runtime prior to the policy load. | 
 | 	  SELinux will then remain disabled until the next boot. | 
 | 	  This option is similar to the selinux=0 boot parameter, but is to | 
 | 	  support runtime disabling of SELinux, e.g. from /sbin/init, for | 
 | 	  portability across platforms where boot parameters are difficult | 
 | 	  to employ. | 
 |  | 
 | 	  NOTE: selecting this option will disable the '__ro_after_init' | 
 | 	  kernel hardening feature for security hooks.   Please consider | 
 | 	  using the selinux=0 boot parameter instead of enabling this | 
 | 	  option. | 
 |  | 
 | 	  If you are unsure how to answer this question, answer N. | 
 |  | 
 | config SECURITY_SELINUX_DEVELOP | 
 | 	bool "NSA SELinux Development Support" | 
 | 	depends on SECURITY_SELINUX | 
 | 	default y | 
 | 	help | 
 | 	  This enables the development support option of NSA SELinux, | 
 | 	  which is useful for experimenting with SELinux and developing | 
 | 	  policies.  If unsure, say Y.  With this option enabled, the | 
 | 	  kernel will start in permissive mode (log everything, deny nothing) | 
 | 	  unless you specify enforcing=1 on the kernel command line.  You | 
 | 	  can interactively toggle the kernel between enforcing mode and | 
 | 	  permissive mode (if permitted by the policy) via /selinux/enforce. | 
 |  | 
 | config SECURITY_SELINUX_AVC_STATS | 
 | 	bool "NSA SELinux AVC Statistics" | 
 | 	depends on SECURITY_SELINUX | 
 | 	default y | 
 | 	help | 
 | 	  This option collects access vector cache statistics to | 
 | 	  /selinux/avc/cache_stats, which may be monitored via | 
 | 	  tools such as avcstat. | 
 |  | 
 | config SECURITY_SELINUX_CHECKREQPROT_VALUE | 
 | 	int "NSA SELinux checkreqprot default value" | 
 | 	depends on SECURITY_SELINUX | 
 | 	range 0 1 | 
 | 	default 0 | 
 | 	help | 
 | 	  This option sets the default value for the 'checkreqprot' flag | 
 | 	  that determines whether SELinux checks the protection requested | 
 | 	  by the application or the protection that will be applied by the | 
 | 	  kernel (including any implied execute for read-implies-exec) for | 
 | 	  mmap and mprotect calls.  If this option is set to 0 (zero), | 
 | 	  SELinux will default to checking the protection that will be applied | 
 | 	  by the kernel.  If this option is set to 1 (one), SELinux will | 
 | 	  default to checking the protection requested by the application. | 
 | 	  The checkreqprot flag may be changed from the default via the | 
 | 	  'checkreqprot=' boot parameter.  It may also be changed at runtime | 
 | 	  via /selinux/checkreqprot if authorized by policy. | 
 |  | 
 | 	  If you are unsure how to answer this question, answer 0. | 
 |  | 
 | config SECURITY_SELINUX_SIDTAB_HASH_BITS | 
 | 	int "NSA SELinux sidtab hashtable size" | 
 | 	depends on SECURITY_SELINUX | 
 | 	range 8 13 | 
 | 	default 9 | 
 | 	help | 
 | 	  This option sets the number of buckets used in the sidtab hashtable | 
 | 	  to 2^SECURITY_SELINUX_SIDTAB_HASH_BITS buckets. The number of hash | 
 | 	  collisions may be viewed at /sys/fs/selinux/ss/sidtab_hash_stats. If | 
 | 	  chain lengths are high (e.g. > 20) then selecting a higher value here | 
 | 	  will ensure that lookups times are short and stable. |