## Manage electronic mail discussion and e-newsletter lists. ####################################### ## ## The template to define a mailman domain. ## ## ## ## Domain prefix to be used. ## ## # template(`mailman_domain_template',` gen_require(` attribute mailman_domain; ') ######################################## # # Declarations # type mailman_$1_t, mailman_domain; type mailman_$1_exec_t; domain_type(mailman_$1_t) domain_entry_file(mailman_$1_t, mailman_$1_exec_t) role system_r types mailman_$1_t; type mailman_$1_tmp_t; files_tmp_file(mailman_$1_tmp_t) #################################### # # Policy # manage_dirs_pattern(mailman_$1_t, mailman_$1_tmp_t, mailman_$1_tmp_t) manage_files_pattern(mailman_$1_t, mailman_$1_tmp_t, mailman_$1_tmp_t) files_tmp_filetrans(mailman_$1_t, mailman_$1_tmp_t, { file dir }) auth_use_nsswitch(mailman_$1_t) ') ####################################### ## ## Execute mailman in the mailman domain. ## ## ## ## Domain allowed to transition. ## ## # interface(`mailman_domtrans',` gen_require(` type mailman_mail_exec_t, mailman_mail_t; ') libs_search_lib($1) domtrans_pattern($1, mailman_mail_exec_t, mailman_mail_t) ') ######################################## ## ## Execute the mailman program in the ## mailman domain and allow the ## specified role the mailman domain. ## ## ## ## Domain allowed to transition. ## ## ## ## ## Role allowed access. ## ## ## # interface(`mailman_run',` gen_require(` attribute_role mailman_roles; ') mailman_domtrans($1) roleattribute $2 mailman_roles; ') ####################################### ## ## Execute mailman CGI scripts in the ## mailman CGI domain. ## ## ## ## Domain allowed to transition. ## ## # interface(`mailman_domtrans_cgi',` gen_require(` type mailman_cgi_exec_t, mailman_cgi_t; ') libs_search_lib($1) domtrans_pattern($1, mailman_cgi_exec_t, mailman_cgi_t) ') ####################################### ## ## Execute mailman in the caller domain. ## ## ## ## Domain allowd access. ## ## # interface(`mailman_exec',` gen_require(` type mailman_mail_exec_t; ') libs_search_lib($1) can_exec($1, mailman_mail_exec_t) ') ####################################### ## ## Send generic signals to mailman cgi. ## ## ## ## Domain allowed access. ## ## # interface(`mailman_signal_cgi',` gen_require(` type mailman_cgi_t; ') allow $1 mailman_cgi_t:process signal; ') ####################################### ## ## Search mailman data directories. ## ## ## ## Domain allowed access. ## ## # interface(`mailman_search_data',` gen_require(` type mailman_data_t; ') files_search_spool($1) allow $1 mailman_data_t:dir search_dir_perms; ') ####################################### ## ## Read mailman data content. ## ## ## ## Domain allowed access. ## ## # interface(`mailman_read_data_files',` gen_require(` type mailman_data_t; ') files_search_spool($1) list_dirs_pattern($1, mailman_data_t, mailman_data_t) read_files_pattern($1, mailman_data_t, mailman_data_t) read_lnk_files_pattern($1, mailman_data_t, mailman_data_t) ') ####################################### ## ## Create, read, write, and delete ## mailman data files. ## ## ## ## Domain allowed access. ## ## # interface(`mailman_manage_data_files',` gen_require(` type mailman_data_t; ') files_search_spool($1) manage_dirs_pattern($1, mailman_data_t, mailman_data_t) manage_files_pattern($1, mailman_data_t, mailman_data_t) ') ####################################### ## ## List mailman data directories. ## ## ## ## Domain allowed access. ## ## # interface(`mailman_list_data',` gen_require(` type mailman_data_t; ') files_search_spool($1) allow $1 mailman_data_t:dir list_dir_perms; ') ####################################### ## ## Read mailman data symbolic links. ## ## ## ## Domain allowed access. ## ## # interface(`mailman_read_data_symlinks',` gen_require(` type mailman_data_t; ') read_lnk_files_pattern($1, mailman_data_t, mailman_data_t) ') ####################################### ## ## Read mailman log files. ## ## ## ## Domain allowed access. ## ## # interface(`mailman_read_log',` gen_require(` type mailman_log_t; ') logging_search_logs($1) read_files_pattern($1, mailman_log_t, mailman_log_t) ') ####################################### ## ## Append mailman log files. ## ## ## ## Domain allowed access. ## ## # interface(`mailman_append_log',` gen_require(` type mailman_log_t; ') logging_search_logs($1) append_files_pattern($1, mailman_log_t, mailman_log_t) ') ####################################### ## ## Create, read, write, and delete ## mailman log content. ## ## ## ## Domain allowed access. ## ## # interface(`mailman_manage_log',` gen_require(` type mailman_log_t; ') logging_search_logs($1) manage_files_pattern($1, mailman_log_t, mailman_log_t) manage_lnk_files_pattern($1, mailman_log_t, mailman_log_t) ') ####################################### ## ## Read mailman archive content. ## ## ## ## Domain allowed access. ## ## # interface(`mailman_read_archive',` gen_require(` type mailman_archive_t; ') files_search_var_lib($1) allow $1 mailman_archive_t:dir list_dir_perms; read_files_pattern($1, mailman_archive_t, mailman_archive_t) read_lnk_files_pattern($1, mailman_archive_t, mailman_archive_t) ') ####################################### ## ## Execute mailman_queue in the ## mailman_queue domain. ## ## ## ## Domain allowed to transition. ## ## # interface(`mailman_domtrans_queue',` gen_require(` type mailman_queue_exec_t, mailman_queue_t; ') libs_search_lib($1) domtrans_pattern($1, mailman_queue_exec_t, mailman_queue_t) ')