--- nsaserefpolicy/policy/modules/services/ddclient.fc 2008-08-07 11:15:11.000000000 -0400 +++ serefpolicy-3.5.5/policy/modules/services/ddclient.fc 2008-08-14 13:53:54.000000000 -0400 @@ -9,3 +9,5 @@ /var/log/ddtcd\.log.* -- gen_context(system_u:object_r:ddclient_log_t,s0) /var/run/ddclient\.pid -- gen_context(system_u:object_r:ddclient_var_run_t,s0) /var/run/ddtcd\.pid -- gen_context(system_u:object_r:ddclient_var_run_t,s0) +/etc/rc.d/init.d/ddclient -- gen_context(system_u:object_r:ddclient_script_exec_t,s0) + --- nsaserefpolicy/policy/modules/services/ddclient.if 2008-08-07 11:15:11.000000000 -0400 +++ serefpolicy-3.5.5/policy/modules/services/ddclient.if 2008-08-14 13:53:54.000000000 -0400 @@ -18,3 +18,81 @@ corecmd_search_bin($1) domtrans_pattern($1, ddclient_exec_t, ddclient_t) ') + +######################################## +## +## Execute ddclient server in the ddclient domain. +## +## +## +## The type of the process performing this action. +## +## +# +# +interface(`ddclient_script_domtrans',` + gen_require(` + type ddclient_script_exec_t; + ') + + init_script_domtrans_spec($1, ddclient_script_exec_t) +') + +######################################## +## +## All of the rules required to administrate +## an ddclient environment +## +## +## +## Domain allowed access. +## +## +## +## +## The role to be allowed to manage the ddclient domain. +## +## +## +## +## The type of the user terminal. +## +## +## +# +interface(`ddclient_admin',` + gen_require(` + type ddclient_t; + type ddclient_script_exec_t; + type ddclient_etc_t; + type ddclient_log_t; + type ddclient_var_t; + type ddclient_var_lib_t; + type ddclient_var_run_t; + ') + + allow $1 ddclient_t:process { ptrace signal_perms getattr }; + read_files_pattern($1, ddclient_t, ddclient_t) + + # Allow ddclient_t to restart the apache service + ddclient_script_domtrans($1) + domain_system_change_exemption($1) + role_transition $2 ddclient_script_exec_t system_r; + allow $2 system_r; + + files_list_etc($1) + admin_pattern($1, ddclient_etc_t) + + files_list_var($1) + admin_pattern($1, ddclient_var_t) + + logging_list_logs($1) + admin_pattern($1, ddclient_log_t) + + files_list_var_lib($1) + admin_pattern($1, ddclient_var_lib_t) + + files_list_pids($1) + admin_pattern($1, ddclient_var_run_t) + +') --- nsaserefpolicy/policy/modules/services/ddclient.te 2008-08-07 11:15:11.000000000 -0400 +++ serefpolicy-3.5.5/policy/modules/services/ddclient.te 2008-08-14 13:53:54.000000000 -0400 @@ -11,7 +11,7 @@ init_daemon_domain(ddclient_t, ddclient_exec_t) type ddclient_etc_t; -files_type(ddclient_etc_t) +files_config_file(ddclient_etc_t) type ddclient_log_t; logging_log_file(ddclient_log_t) @@ -25,6 +25,9 @@ type ddclient_var_run_t; files_pid_file(ddclient_var_run_t) +type ddclient_script_exec_t; +init_script_type(ddclient_script_exec_t) + ######################################## # # Declarations