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