--- nsaserefpolicy/policy/modules/services/ldap.fc 2008-08-07 11:15:11.000000000 -0400
+++ serefpolicy-3.5.5/policy/modules/services/ldap.fc 2008-08-14 13:53:54.000000000 -0400
@@ -14,3 +14,5 @@
/var/run/openldap(/.*)? gen_context(system_u:object_r:slapd_var_run_t,s0)
/var/run/slapd\.args -- gen_context(system_u:object_r:slapd_var_run_t,s0)
/var/run/slapd\.pid -- gen_context(system_u:object_r:slapd_var_run_t,s0)
+
+/etc/rc.d/init.d/ldap -- gen_context(system_u:object_r:ldap_script_exec_t,s0)
--- nsaserefpolicy/policy/modules/services/ldap.if 2008-08-07 11:15:11.000000000 -0400
+++ serefpolicy-3.5.5/policy/modules/services/ldap.if 2008-08-14 13:53:54.000000000 -0400
@@ -73,3 +73,80 @@
allow $1 slapd_var_run_t:sock_file write;
allow $1 slapd_t:unix_stream_socket connectto;
')
+
+########################################
+##
+## Execute ldap server in the ldap domain.
+##
+##
+##
+## The type of the process performing this action.
+##
+##
+#
+#
+interface(`ldap_script_domtrans',`
+ gen_require(`
+ type ldap_script_exec_t;
+ ')
+
+ init_script_domtrans_spec($1, ldap_script_exec_t)
+')
+
+########################################
+##
+## All of the rules required to administrate
+## an ldap environment
+##
+##
+##
+## Domain allowed access.
+##
+##
+##
+##
+## The role to be allowed to manage the ldap domain.
+##
+##
+##
+##
+## The type of the user terminal.
+##
+##
+##
+#
+interface(`ldap_admin',`
+ gen_require(`
+ type slapd_t;
+ type ldap_script_exec_t;
+ type slapd_tmp_t;
+ type slapd_replog_t;
+ type slapd_lock_t;
+ type slapd_etc_t;
+ type slapd_var_run_t;
+ ')
+
+ allow $1 slapd_t:process { ptrace signal_perms getattr };
+ read_files_pattern($1, slapd_t, slapd_t)
+
+ # Allow slapd_t to restart the apache service
+ ldap_script_domtrans($1)
+ domain_system_change_exemption($1)
+ role_transition $2 ldap_script_exec_t system_r;
+ allow $2 system_r;
+
+ files_list_tmp($1)
+ admin_pattern($1, slapd_tmp_t)
+
+ admin_pattern($1, slapd_replog_t)
+
+ files_list_etc($1)
+ admin_pattern($1, slapd_etc_t)
+
+ admin_pattern($1, slapd_lock_t)
+
+ files_list_pids($1)
+ admin_pattern($1, slapd_var_run_t)
+')
+
+
--- nsaserefpolicy/policy/modules/services/ldap.te 2008-08-07 11:15:11.000000000 -0400
+++ serefpolicy-3.5.5/policy/modules/services/ldap.te 2008-08-14 13:53:54.000000000 -0400
@@ -31,6 +31,9 @@
type slapd_var_run_t;
files_pid_file(slapd_var_run_t)
+type ldap_script_exec_t;
+init_script_type(ldap_script_exec_t)
+
########################################
#
# Local policy
@@ -118,7 +121,7 @@
sysadm_dontaudit_search_home_dirs(slapd_t)
optional_policy(`
- kerberos_use(slapd_t)
+ kerberos_keytab_template(slapd, slapd_t)
')
optional_policy(`