--- 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