.TH  "selinux"  "8"  "29 Apr 2005" "dwalsh@redhat.com" "SELinux Command Line documentation"
.SH "NAME"
SELinux \- NSA Security-Enhanced Linux (SELinux)
.
.SH "DESCRIPTION"
NSA Security-Enhanced Linux (SELinux) is an implementation of a
flexible mandatory access control architecture in the Linux operating
system.  The SELinux architecture provides general support for the
enforcement of many kinds of mandatory access control policies,
including those based on the concepts of Type Enforcement®, Role-
Based Access Control, and Multi-Level Security.  Background
information and technical documentation about SELinux can be found at
https://github.com/SELinuxProject.

The
.I /etc/selinux/config
configuration file controls whether SELinux is
enabled or disabled, and if enabled, whether SELinux operates in
permissive mode or enforcing mode.  The
.B SELINUX
variable may be set to
any one of disabled, permissive, or enforcing to select one of these
options.  The disabled option completely disables the SELinux kernel
and application code, leaving the system running without any SELinux
protection.  The permissive option enables the SELinux code, but
causes it to operate in a mode where accesses that would be denied by
policy are permitted but audited.  The enforcing option enables the
SELinux code and causes it to enforce access denials as well as
auditing them.  Permissive mode may yield a different set of denials
than enforcing mode, both because enforcing mode will prevent an
operation from proceeding past the first denial and because some
application code will fall back to a less privileged mode of operation
if denied access.

The
.I /etc/selinux/config
configuration file also controls what policy
is active on the system.  SELinux allows for multiple policies to be
installed on the system, but only one policy may be active at any
given time.  At present, multiple kinds of SELinux policy exist: targeted,
mls for example.  The targeted policy is designed as a policy where most
user processes operate without restrictions, and only specific services are
placed into distinct security domains that are confined by the policy.
For example, the user would run in a completely unconfined domain
while the named daemon or apache daemon would run in a specific domain
tailored to its operation.  The MLS (Multi-Level Security) policy is designed
as a policy where all processes are partitioned into fine-grained security
domains and confined by policy.  MLS also supports the Bell And LaPadula model, where processes are not only confined by the type but also the level of the data.

You can
define which policy you will run by setting the
.B SELINUXTYPE
environment variable within
.IR /etc/selinux/config .
You must reboot and possibly relabel if you change the policy type to have it take effect on the system.
The corresponding
policy configuration for each such policy must be installed in the
.I /etc/selinux/{SELINUXTYPE}/
directories.

A given SELinux policy can be customized further based on a set of
compile-time tunable options and a set of runtime policy booleans.
.B \%system\-config\-selinux
allows customization of these booleans and tunables.

Many domains that are protected by SELinux also include SELinux man pages explaining how to customize their policy.  
.
.SH "FILE LABELING"
All files, directories, devices ... have a security context/label associated with them.  These context are stored in the extended attributes of the file system.
Problems with SELinux often arise from the file system being mislabeled. This can be caused by booting the machine with a non SELinux kernel.  If you see an error message containing file_t, that is usually a good indicator that you have a serious problem with file system labeling.  

The best way to relabel the file system is to create the flag file
.I /.autorelabel
and reboot.
.BR system\-config\-selinux ,
also has this capability.  The
.BR restorecon / fixfiles
commands are also available for relabeling files.
.
.SH AUTHOR
This manual page was written by Dan Walsh <dwalsh@redhat.com>.
.
.SH FILES
.I /etc/selinux/config
.
.SH "SEE ALSO"
.ad l
.nh
.BR booleans (8),
.BR setsebool (8),
.BR sepolicy (8),
.BR system-config-selinux (8),
.BR togglesebool (8),
.BR restorecon (8),
.BR fixfiles (8),
.BR setfiles (8),
.BR semanage (8),
.BR sepolicy (8)

Every confined service on the system has a man page in the following format:
.br

.BR <servicename>_selinux (8)

For example, httpd has the
.BR httpd_selinux (8)
man page.

.B man -k selinux

Will list all SELinux man pages.
