## ## Daemon that interfaces mail transfer agents and content ## checkers, such as virus scanners. ## ######################################## ## ## Execute a domain transition to run amavis. ## ## ## ## Domain allowed to transition. ## ## # interface(`amavis_domtrans',` gen_require(` type amavis_t, amavis_exec_t; ') domtrans_pattern($1,amavis_exec_t,amavis_t) ') ######################################## ## ## Read amavis spool files. ## ## ## ## Domain allowed access. ## ## # interface(`amavis_read_spool_files',` gen_require(` type amavis_spool_t; ') files_search_spool($1) allow $1 amavis_spool_t:file { getattr read }; ') ######################################## ## ## Manage amavis spool files. ## ## ## ## Domain allowed access. ## ## # interface(`amavis_manage_spool_files',` gen_require(` type amavis_spool_t; ') files_search_spool($1) manage_dirs_pattern($1,amavis_spool_t,amavis_spool_t) manage_files_pattern($1,amavis_spool_t,amavis_spool_t) ') ######################################## ## ## Create objects in the amavis spool directories ## with a private type. ## ## ## ## Domain allowed access. ## ## ## ## ## Private file type. ## ## ## ## ## Class of the object being created. ## ## # interface(`amavis_spool_filetrans',` gen_require(` type amavis_spool_t; ') files_search_spool($1) filetrans_pattern($1,amavis_spool_t,$2,$3) ') ######################################## ## ## Search amavis lib directories. ## ## ## ## Domain allowed access. ## ## # interface(`amavis_search_lib',` gen_require(` type amavis_var_lib_t; ') allow $1 amavis_var_lib_t:dir search_dir_perms; files_search_var_lib($1) ') ######################################## ## ## Read amavis lib files. ## ## ## ## Domain allowed access. ## ## # interface(`amavis_read_lib_files',` gen_require(` type amavis_var_lib_t; ') read_files_pattern($1,amavis_var_lib_t,amavis_var_lib_t) allow $1 amavis_var_lib_t:dir list_dir_perms; files_search_var_lib($1) ') ######################################## ## ## Create, read, write, and delete ## amavis lib files. ## ## ## ## Domain allowed access. ## ## # interface(`amavis_manage_lib_files',` gen_require(` type amavis_var_lib_t; ') manage_files_pattern($1,amavis_var_lib_t,amavis_var_lib_t) files_search_var_lib($1) ') ######################################## ## ## Set the attributes of amavis pid files. ## ## ## ## Domain allowed access. ## ## # interface(`amavis_setattr_pid_files',` gen_require(` type amavis_var_run_t; ') allow $1 amavis_var_run_t:file setattr; files_search_pids($1) ') ######################################## ## ## Create of amavis pid files. ## ## ## ## Domain allowed access. ## ## # interface(`amavis_create_pid_files',` gen_require(` type amavis_var_run_t; ') allow $1 amavis_var_run_t:file create_file_perms; files_search_pids($1) ') ######################################## ## ## All of the rules required to administrate ## an amavis environment ## ## ## ## Domain allowed access. ## ## ## ## ## The role to be allowed to manage the amavis domain. ## ## ## ## ## The type of the user terminal. ## ## ## # interface(`amavis_admin',` gen_require(` type amavis_t, amavis_tmp_t, amavis_log_t; type amavis_spool_t, amavis_var_lib_t, amavis_var_run_t; type amavis_etc_t, amavis_quarantine_t; ') allow $1 amavis_t:process { ptrace signal_perms }; ps_process_pattern($1, amavis_t) files_list_tmp($1) manage_files_pattern($1, amavis_tmp_t, amavis_tmp_t) manage_files_pattern($1, amavis_quarantine_t, amavis_quarantine_t) files_list_etc($1) manage_files_pattern($1, amavis_etc_t, amavis_etc_t) logging_list_logs($1) manage_files_pattern($1, amavis_log_t, amavis_log_t) files_list_spool($1) manage_files_pattern($1, amavis_spool_t, amavis_spool_t) files_list_var_lib($1) manage_files_pattern($1, amavis_var_lib_t, amavis_var_lib_t) files_list_pids($1) manage_files_pattern($1, amavis_var_run_t, amavis_var_run_t) ')