--- nsaserefpolicy/policy/modules/services/cyrus.fc 2008-08-07 11:15:11.000000000 -0400 +++ serefpolicy-3.5.5/policy/modules/services/cyrus.fc 2008-08-14 13:53:54.000000000 -0400 @@ -2,3 +2,5 @@ /usr/lib(64)?/cyrus-imapd/cyrus-master -- gen_context(system_u:object_r:cyrus_exec_t,s0) /var/lib/imap(/.*)? gen_context(system_u:object_r:cyrus_var_lib_t,s0) + +/etc/rc.d/init.d/cyrus -- gen_context(system_u:object_r:cyrus_script_exec_t,s0) --- nsaserefpolicy/policy/modules/services/cyrus.if 2008-08-07 11:15:11.000000000 -0400 +++ serefpolicy-3.5.5/policy/modules/services/cyrus.if 2008-08-14 13:53:54.000000000 -0400 @@ -39,3 +39,74 @@ files_search_var_lib($1) stream_connect_pattern($1, cyrus_var_lib_t, cyrus_var_lib_t, cyrus_t) ') + +######################################## +## +## Execute cyrus server in the cyrus domain. +## +## +## +## The type of the process performing this action. +## +## +# +# +interface(`cyrus_script_domtrans',` + gen_require(` + type cyrus_script_exec_t; + ') + + init_script_domtrans_spec($1, cyrus_script_exec_t) +') + +######################################## +## +## All of the rules required to administrate +## an cyrus environment +## +## +## +## Domain allowed access. +## +## +## +## +## The role to be allowed to manage the cyrus domain. +## +## +## +## +## The type of the user terminal. +## +## +## +# +interface(`cyrus_admin',` + gen_require(` + type cyrus_t; + type cyrus_script_exec_t; + type cyrus_tmp_t; + type cyrus_var_lib_t; + type cyrus_var_run_t; + ') + + allow $1 cyrus_t:process { ptrace signal_perms getattr }; + read_files_pattern($1, cyrus_t, cyrus_t) + + # Allow cyrus_t to restart the apache service + cyrus_script_domtrans($1) + domain_system_change_exemption($1) + role_transition $2 cyrus_script_exec_t system_r; + allow $2 system_r; + + files_list_tmp($1) + admin_pattern($1, cyrus_tmp_t) + + files_list_var_lib($1) + admin_pattern($1, cyrus_var_lib_t) + + files_list_pids($1) + admin_pattern($1, cyrus_var_run_t) +') + + --- nsaserefpolicy/policy/modules/services/cyrus.te 2008-08-07 11:15:11.000000000 -0400 +++ serefpolicy-3.5.5/policy/modules/services/cyrus.te 2008-08-14 13:53:54.000000000 -0400 @@ -19,6 +19,9 @@ type cyrus_var_run_t; files_pid_file(cyrus_var_run_t) +type cyrus_script_exec_t; +init_script_type(cyrus_script_exec_t) + ######################################## # # Local policy @@ -120,7 +123,7 @@ ') optional_policy(` - kerberos_use(cyrus_t) + kerberos_keytab_template(cyrus, cyrus_t) ') optional_policy(`