The dovecot processes execute with the dovecot_t SELinux
type. You can check if you have these processes running by
executing the ps command with the -Z qualifier.

For example:

ps -eZ | grep dovecot_t

ENTRYPOINTS The dovecot_t SELinux type can be entered
via the dovecot_exec_t file type.

The default entrypoint paths for the dovecot_t domain
are the follow- ing:

/usr/sbin/dovecot

PROCESS TYPES SELinux defines process types (domains)
for each process running on the system

You can see the context of a process using the -Z option
to ps

Policy governs the access confined processes have to
files. SELinux dovecot policy is very flexible allowing
users to setup their dovecot processes in as secure a method
as possible.

The following process types are defined for dovecot:

dovecot_deliver_t, dovecot_auth_t, dovecot_t

Note: semanage permissive -a dovecot_t can be used to
make the process type dovecot_t permissive. SELinux does not
deny access to permissive process types, but the AVC
(SELinux denials) messages are still gener- ated.

BOOLEANS SELinux policy is customizable based on least
access required. dovecot policy is extremely flexible and
has several booleans that allow you to manipulate the policy
and run dovecot with the tightest access possi- ble.

If you want to allow all daemons to write corefiles to
/, you must turn on the allow_daemons_dump_core boolean.
Disabled by default.

setsebool -P allow_daemons_dump_core 1

If you want to allow all daemons to use tcp wrappers,
you must turn on the allow_daemons_use_tcp_wrapper boolean.
Disabled by default.

setsebool -P allow_daemons_use_tcp_wrapper 1

If you want to allow all daemons the ability to
read/write terminals, you must turn on the
allow_daemons_use_tty boolean. Disabled by default.

setsebool -P allow_daemons_use_tty 1

If you want to allow all domains to use other domains
file descriptors, you must turn on the allow_domain_fd_use
boolean. Enabled by default.

setsebool -P allow_domain_fd_use 1

If you want to allow confined applications to run with
kerberos, you must turn on the allow_kerberos boolean.
Enabled by default.

setsebool -P allow_kerberos 1

If you want to allow sysadm to debug or ptrace all
processes, you must turn on the allow_ptrace boolean.
Disabled by default.

setsebool -P allow_ptrace 1

If you want to allow system to run with NIS, you must
turn on the allow_ypbind boolean. Disabled by default.

setsebool -P allow_ypbind 1

If you want to enable cluster mode for daemons, you must
turn on the daemons_enable_cluster_mode boolean. Disabled by
default.

setsebool -P daemons_enable_cluster_mode 1

If you want to allow all domains to have the kernel load
modules, you must turn on the domain_kernel_load_modules
boolean. Disabled by default.

setsebool -P domain_kernel_load_modules 1

If you want to allow all domains to execute in
fips_mode, you must turn on the fips_mode boolean. Enabled
by default.

setsebool -P fips_mode 1

If you want to enable reading of urandom for all
domains, you must turn on the global_ssp boolean. Disabled
by default.

setsebool -P global_ssp 1

If you want to enable support for upstart as the init
program, you must turn on the init_upstart boolean. Enabled
by default.

setsebool -P init_upstart 1

If you want to allow confined applications to use nscd
shared memory, you must turn on the nscd_use_shm boolean.
Enabled by default.

setsebool -P nscd_use_shm 1

If you want to support NFS home directories, you must
turn on the use_nfs_home_dirs boolean. Disabled by
default.

setsebool -P use_nfs_home_dirs 1

If you want to support SAMBA home directories, you must
turn on the use_samba_home_dirs boolean. Disabled by
default.

setsebool -P use_samba_home_dirs 1

MANAGED FILES The SELinux process type dovecot_t can
manage files labeled with the following file types. The
paths listed are the default paths for these file types.
Note the processes UID still need to have DAC
permissions.

FILE CONTEXTS SELinux requires files to have an extended
attribute to define the file type.

You can see the context of a file using the -Z option to
ls

Policy governs the access confined processes have to
these files. SELinux dovecot policy is very flexible
allowing users to setup their dovecot processes in as secure
a method as possible.

EQUIVALENCE DIRECTORIES

dovecot policy stores data with multiple different file
context types under the /var/log/dovecot directory. If you
would like to store the data in a different directory you
can use the semanage command to cre- ate an equivalence
mapping. If you wanted to store this data under the /srv
dirctory you would execute the following command:

SELinux defines the file context types for the dovecot,
if you wanted to store files with these types in a diffent
paths, you need to execute the semanage command to sepecify
alternate labeling and then use restorecon to put the labels
on disk.

- Set files with the dovecot_var_log_t type, if you want
to treat the data as dovecot var log data, usually stored
under the /var/log direc- tory.

Paths: /var/log/dovecot(/.*)?,
/var/log/dovecot.log.*

dovecot_var_run_t

- Set files with the dovecot_var_run_t type, if you want
to store the dovecot files under the /run or /var/run
directory.

Note: File context can be temporarily modified with the
chcon command. If you want to permanently change the file
context you need to use the semanage fcontext command. This
will modify the SELinux labeling database. You will need to
use restorecon to apply the labels.

COMMANDS semanage fcontext can also be used to
manipulate default file context mappings.

semanage permissive can also be used to manipulate
whether or not a process type is permissive.

semanage module can also be used to
enable/disable/install/remove pol- icy modules.

semanage boolean can also be used to manipulate the
booleans

system-config-selinux is a GUI tool available to
customize SELinux policy settings.