## Pyzor is a distributed, collaborative spam detection and filtering network. ######################################## ## ## Role access for pyzor. ## ## ## ## Role allowed access ## ## ## ## ## User domain for the role ## ## # interface(`pyzor_role',` gen_require(` attribute_role pyzor_roles; type pyzor_t, pyzor_exec_t, pyzor_home_t; type pyzor_tmp_t; ') roleattribute $1 pyzor_roles; domtrans_pattern($2, pyzor_exec_t, pyzor_t) allow $2 pyzor_t:process { ptrace signal_perms }; ps_process_pattern($2, pyzor_t) allow $2 { pyzor_home_t pyzor_tmp_t }:dir { manage_dir_perms relabel_dir_perms }; allow $2 { pyzor_home_t pyzor_tmp_t }:file { manage_file_perms relabel_file_perms }; allow $2 pyzor_home_t:lnk_file { manage_lnk_file_perms relabel_lnk_file_perms }; userdom_user_home_dir_filetrans($2, pyzor_home_t, dir, ".pyzor") ') ######################################## ## ## Send generic signals to pyzor. ## ## ## ## Domain allowed access. ## ## # interface(`pyzor_signal',` gen_require(` type pyzor_t; ') allow $1 pyzor_t:process signal; ') ######################################## ## ## Execute pyzor with a domain transition. ## ## ## ## Domain allowed to transition. ## ## # interface(`pyzor_domtrans',` gen_require(` type pyzor_exec_t, pyzor_t; ') corecmd_search_bin($1) domtrans_pattern($1, pyzor_exec_t, pyzor_t) ') ######################################## ## ## Execute pyzor in the caller domain. ## ## ## ## Domain allowed access. ## ## # interface(`pyzor_exec',` gen_require(` type pyzor_exec_t; ') corecmd_search_bin($1) can_exec($1, pyzor_exec_t) ') ######################################## ## ## All of the rules required to ## administrate an pyzor environment. ## ## ## ## Domain allowed access. ## ## ## ## ## Role allowed access. ## ## ## # interface(`pyzor_admin',` gen_require(` type pyzord_t, pyzord_initrc_exec_t, pyzord_log_t; type pyzor_var_lib_t, pyzor_etc_t; ') allow $1 pyzord_t:process { ptrace signal_perms }; ps_process_pattern($1, pyzord_t) init_startstop_service($1, $2, pyzord_t, pyzord_initrc_exec_t) files_search_etc($1) admin_pattern($1, pyzor_etc_t) logging_search_logs($1) admin_pattern($1, pyzord_log_t) files_search_var_lib($1) admin_pattern($1, pyzor_var_lib_t) # This makes it impossible to apply _admin if _role has already been applied #pyzor_role($2, $1) ')