--- nsaserefpolicy/policy/modules/services/smartmon.fc 2008-08-07 11:15:11.000000000 -0400
+++ serefpolicy-3.5.5/policy/modules/services/smartmon.fc 2008-08-14 13:53:54.000000000 -0400
@@ -8,3 +8,4 @@
#
/var/run/smartd\.pid -- gen_context(system_u:object_r:fsdaemon_var_run_t,s0)
+/etc/rc.d/init.d/smartd -- gen_context(system_u:object_r:fsdaemon_script_exec_t,s0)
--- nsaserefpolicy/policy/modules/services/smartmon.if 2008-08-07 11:15:11.000000000 -0400
+++ serefpolicy-3.5.5/policy/modules/services/smartmon.if 2008-08-14 13:53:54.000000000 -0400
@@ -20,6 +20,25 @@
########################################
##
+## Execute smartmon server in the smartmon domain.
+##
+##
+##
+## The type of the process performing this action.
+##
+##
+#
+#
+interface(`smartmon_script_domtrans',`
+ gen_require(`
+ type fsdaemon_script_exec_t;
+ ')
+
+ init_script_domtrans_spec($1, fsdaemon_script_exec_t)
+')
+
+########################################
+##
## All of the rules required to administrate
## an smartmon environment
##
@@ -33,14 +52,21 @@
interface(`smartmon_admin',`
gen_require(`
type fsdaemon_t, fsdaemon_tmp_t, fsdaemon_var_run_t;
+ type fsdaemon_script_exec_t;
')
allow $1 fsdaemon_t:process { ptrace signal_perms getattr };
ps_process_pattern($1, fsdaemon_t)
+ # Allow fsdaemon_t to restart the apache service
+ fsdaemon_script_domtrans($1)
+ domain_system_change_exemption($1)
+ role_transition $2 fsdaemon_script_exec_t system_r;
+ allow $2 system_r;
+
files_list_tmp($1)
- manage_files_pattern($1, fsdaemon_tmp_t, fsdaemon_tmp_t)
+ admin_pattern($1, fsdaemon_tmp_t)
files_list_pids($1)
- manage_files_pattern($1, fsdaemon_var_run_t, fsdaemon_var_run_t)
+ admin_pattern($1, fsdaemon_var_run_t)
')
--- nsaserefpolicy/policy/modules/services/smartmon.te 2008-08-07 11:15:11.000000000 -0400
+++ serefpolicy-3.5.5/policy/modules/services/smartmon.te 2008-08-14 13:53:54.000000000 -0400
@@ -16,6 +16,10 @@
type fsdaemon_tmp_t;
files_tmp_file(fsdaemon_tmp_t)
+type fsdaemon_script_exec_t;
+init_script_type(fsdaemon_script_exec_t)
+typealias fsdaemon_script_exec_t alias smartmon_script_exec_t;
+
########################################
#
# Local policy
@@ -28,6 +32,7 @@
allow fsdaemon_t self:unix_dgram_socket create_socket_perms;
allow fsdaemon_t self:unix_stream_socket create_stream_socket_perms;
allow fsdaemon_t self:udp_socket create_socket_perms;
+allow fsdaemon_t self:netlink_route_socket r_netlink_socket_perms;
manage_dirs_pattern(fsdaemon_t, fsdaemon_tmp_t, fsdaemon_tmp_t)
manage_files_pattern(fsdaemon_t, fsdaemon_tmp_t, fsdaemon_tmp_t)
@@ -62,6 +67,7 @@
fs_search_auto_mountpoints(fsdaemon_t)
mls_file_read_all_levels(fsdaemon_t)
+mls_file_write_all_levels(fsdaemon_t)
storage_raw_read_fixed_disk(fsdaemon_t)
storage_raw_write_fixed_disk(fsdaemon_t)
@@ -78,10 +84,9 @@
miscfiles_read_localization(fsdaemon_t)
-sysnet_read_config(fsdaemon_t)
+sysnet_dns_name_resolve(fsdaemon_t)
userdom_dontaudit_use_unpriv_user_fds(fsdaemon_t)
-
sysadm_dontaudit_search_home_dirs(fsdaemon_t)
optional_policy(`