--- nsaserefpolicy/policy/modules/services/radius.fc 2008-08-07 11:15:11.000000000 -0400
+++ serefpolicy-3.5.5/policy/modules/services/radius.fc 2008-08-14 13:53:54.000000000 -0400
@@ -20,3 +20,5 @@
/var/run/radiusd(/.*)? gen_context(system_u:object_r:radiusd_var_run_t,s0)
/var/run/radiusd\.pid -- gen_context(system_u:object_r:radiusd_var_run_t,s0)
+
+/etc/rc.d/init.d/radiusd -- gen_context(system_u:object_r:radius_script_exec_t,s0)
--- nsaserefpolicy/policy/modules/services/radius.if 2008-08-07 11:15:11.000000000 -0400
+++ serefpolicy-3.5.5/policy/modules/services/radius.if 2008-08-14 13:53:54.000000000 -0400
@@ -16,6 +16,25 @@
########################################
##
+## Execute radius server in the radius domain.
+##
+##
+##
+## The type of the process performing this action.
+##
+##
+#
+#
+interface(`radius_script_domtrans',`
+ gen_require(`
+ type radius_script_exec_t;
+ ')
+
+ init_script_domtrans_spec($1, radius_script_exec_t)
+')
+
+########################################
+##
## All of the rules required to administrate
## an radius environment
##
@@ -30,22 +49,29 @@
gen_require(`
type radiusd_t, radiusd_etc_t, radiusd_log_t;
type radiusd_etc_rw_t, radiusd_var_lib_t, radiusd_var_run_t;
+ type radius_script_exec_t;
')
allow $1 radiusd_t:process { ptrace signal_perms getattr };
ps_process_pattern($1, radiusd_t)
+ # Allow radius_t to restart the apache service
+ radius_script_domtrans($1)
+ domain_system_change_exemption($1)
+ role_transition $2 radius_script_exec_t system_r;
+ allow $2 system_r;
+
files_list_etc($1)
- manage_files_pattern($1, radiusd_etc_t, radiusd_etc_t)
+ admin_pattern($1, radiusd_etc_t, radiusd_etc_t)
logging_list_logs($1)
- manage_files_pattern($1, radiusd_log_t, radiusd_log_t)
+ admin_pattern($1, radiusd_log_t, radiusd_log_t)
- manage_files_pattern($1, radiusd_etc_rw_t, radiusd_etc_rw_t)
+ admin_pattern($1, radiusd_etc_rw_t, radiusd_etc_rw_t)
files_list_var_lib($1)
- manage_files_pattern($1, radiusd_var_lib_t, radiusd_var_lib_t)
+ admin_pattern($1, radiusd_var_lib_t, radiusd_var_lib_t)
files_list_pids($1)
- manage_files_pattern($1, radiusd_var_run_t, radiusd_var_run_t)
+ admin_pattern($1, radiusd_var_run_t, radiusd_var_run_t)
')
--- nsaserefpolicy/policy/modules/services/radius.te 2008-08-07 11:15:11.000000000 -0400
+++ serefpolicy-3.5.5/policy/modules/services/radius.te 2008-08-14 13:53:54.000000000 -0400
@@ -25,6 +25,9 @@
type radiusd_var_run_t;
files_pid_file(radiusd_var_run_t)
+type radius_script_exec_t;
+init_script_type(radius_script_exec_t)
+
########################################
#
# Local policy
@@ -34,12 +37,11 @@
# gzip also needs chown access to preserve GID for radwtmp files
allow radiusd_t self:capability { chown dac_override fsetid kill setgid setuid sys_resource sys_tty_config };
dontaudit radiusd_t self:capability sys_tty_config;
-allow radiusd_t self:process { setsched signal };
+allow radiusd_t self:process { getsched setsched sigkill signal };
allow radiusd_t self:fifo_file rw_fifo_file_perms;
allow radiusd_t self:unix_stream_socket create_stream_socket_perms;
allow radiusd_t self:tcp_socket create_stream_socket_perms;
allow radiusd_t self:udp_socket create_socket_perms;
-allow radiusd_t self:netlink_route_socket r_netlink_socket_perms;
allow radiusd_t radiusd_etc_t:dir list_dir_perms;
read_files_pattern(radiusd_t, radiusd_etc_t, radiusd_etc_t)
@@ -86,9 +88,6 @@
fs_getattr_all_fs(radiusd_t)
fs_search_auto_mountpoints(radiusd_t)
-auth_read_shadow(radiusd_t)
-auth_domtrans_chk_passwd(radiusd_t)
-
corecmd_exec_bin(radiusd_t)
corecmd_exec_shell(radiusd_t)
@@ -98,6 +97,10 @@
files_read_etc_files(radiusd_t)
files_read_etc_runtime_files(radiusd_t)
+auth_use_nsswitch(radiusd_t)
+auth_read_shadow(radiusd_t)
+auth_domtrans_chk_passwd(radiusd_t)
+
libs_use_ld_so(radiusd_t)
libs_use_shared_libs(radiusd_t)
libs_exec_lib_files(radiusd_t)
@@ -107,8 +110,6 @@
miscfiles_read_localization(radiusd_t)
miscfiles_read_certs(radiusd_t)
-sysnet_read_config(radiusd_t)
-
userdom_dontaudit_use_unpriv_user_fds(radiusd_t)
sysadm_dontaudit_search_home_dirs(radiusd_t)
@@ -123,7 +124,9 @@
')
optional_policy(`
- nis_use_ypbind(radiusd_t)
+ mysql_read_config(radiusd_t)
+ mysql_stream_connect(radiusd_t)
+ corenet_tcp_connect_mysqld_port(radiusd_t)
')
optional_policy(`