The /selinux/ pseudo-file system contains
commands that are most commonly used by the kernel
subsystem. This type of file system is similar to the
/proc/ pseudo-file system.
In most cases, administrators and users do not need to manipulate
this component compared to other SELinux files and directories.
The following example shows sample contents of the
/selinux/ directory:
There are two ways to configure SELinux under Red Hat Enterprise Linux: using
the Security Level Configuration Tool
(system-config-securitylevel), or manually editing the
configuration file (/etc/sysconfig/selinux).
The /etc/sysconfig/selinux file is the primary
configuration file for enabling or disabling SELinux, as well as
setting which policy to enforce on the system and how to enforce it.
Note
The /etc/sysconfig/selinux contains a
symbolic link to the actual configuration file,
/etc/selinux/config.
The following explains the full subset of options available for
configuration:
SELINUX=<enforcing|permissive|disabled>
— Defines the top-level state of SELinux on a system.
enforcing — The SELinux security
policy is enforced.
permissive — The SELinux system
prints warnings but does not enforce policy. This is useful
for debugging and troubleshooting purposes. In permissive
mode, more denials will be logged, as subjects will be able
to continue with actions otherwise denied in enforcing mode.
For example, traversing a directory tree will produce
multiple avc: denied
messages for every directory level read, where a kernel in
enforcing mode would have stopped the initial traversal and
kept further denial messages from occurring.
disabled — SELinux is fully
disabled. SELinux hooks are disengaged from the kernel and
the pseudo-file system is unregistered.
Tip
Actions made while SELinux is disabled may cause the file
system to no longer have the proper security context as
defined by the policy. Running fixfiles
relabel prior to enabling SELinux will relabel the
file system so that SELinux works properly when enabled. For
more information, refer to the
fixfiles(8) manpage.
Note
Additional white space at the end of a configuration line or
as extra lines at the end of the file may cause unexpected
behavior. To be safe, remove unnecessary white spaces.
SELINUXTYPE=<targeted|strict>
— Specifies which policy is currently being enforced by
SELinux.
targeted — Only targeted network
daemons are protected.
Important
The following daemons are protected in the default
targeted policy: dhcpd, httpd
(apache.te), named,
nscd, ntpd,
portmap, snmpd,
squid, and
syslogd. The rest of the system runs in
the unconfined_t domain.
The policy files for these daemons can be found in
/etc/selinux/targeted/src/policy/domains/program
and are subject to change, as newer versions of Red Hat Enterprise Linux are
released.
Policy enforcement for these daemons can be turned on or
off, using Boolean values controlled by
Security Level Configuration Tool
(system-config-securitylevel). Switching
a Boolean value for a targeted daemon disables the policy
transition for the daemon, which prevents, for example,
init from transitioning
dhcpd from the
unconfined_t domain to the
domain specified in dhcpd.te. The
domain unconfined_t allows
subjects and objects with that security context to run under
standard Linux security.
strict — Full SELinux protection, for
all daemons. Security contexts are defined for all
subjects and objects, and every single action is processed
by the policy enforcement server.
The two subdirectories, strict/ and
targeted/, are the specific directories where
the policy files of the same name (i.e., strict and targeted) are
contained.
For more information on SELinux policy and policy configuration,
refer to the rhel-pwg-selinux.
The following are some of the most commonly used SELinux utilities:
/usr/bin/setenforce — Modifies in
real-time the mode SELinux is running. By executing
setenforce 1, SELinux is put in enforcing
mode. By executing setenforce 0, SELinux is put
in permissive mode. To actually disable SELinux, you need to either
set the parameter in /etc/sysconfig/selinux
or pass the parameter selinux=0 to the kernel,
either in /etc/grub.conf or at boot time.
/usr/bin/sestatus -v — Gets the detailed
status of a system running SELinux. The following example shows an
excerpt of sestatus output:
/usr/bin/newrole — Runs a new shell in
a new context, or role. Policy must allow the transition to the
new role.
/sbin/restorecon — Sets the security
context of one or more files by marking the extended attributes
with the appropriate file or security context.
/sbin/fixfiles — Checks or corrects the
security context database on the file system.
Refer to the man page associated with these utilities for more
information.
For more information on all binary utilities available, refer to the
setools or policycoreutils
package contents by running rpm -ql
<package-name>, where
<package-name> is
the name of the specific package.