diff --git a/refpolicy/policy/modules/services/apache.te b/refpolicy/policy/modules/services/apache.te
index 0e4c0073..0f5b1d66 100644
--- a/refpolicy/policy/modules/services/apache.te
+++ b/refpolicy/policy/modules/services/apache.te
@@ -360,6 +360,7 @@ optional_policy(`mta.te',`
optional_policy(`mysql.te',`
mysql_stream_connect(httpd_t)
+ mysql_rw_db_socket(httpd_t)
')
optional_policy(`nis.te',`
@@ -389,16 +390,6 @@ allow httpd_t home_root_t:dir getattr;
dontaudit httpd_t sysadm_home_dir_t:dir getattr;
allow httpd_sys_script_t var_spool_t:dir getattr;
-optional_policy(`mysql.te',`
- allow httpd_t mysqld_db_t:dir search;
- allow httpd_t mysqld_db_t:sock_file rw_file_perms;
-')
-
-optional_policy(`mysql.te',`
- allow httpd_sys_script_t mysqld_db_t:dir search;
- allow httpd_sys_script_t mysqld_db_t:sock_file rw_file_perms;
-')
-
ifdef(`targeted_policy',`
if (httpd_enable_homedirs) {
allow httpd_t user_home_dir_t:dir { getattr search };
@@ -615,6 +606,7 @@ ifdef(`distro_redhat',`
optional_policy(`mysql.te',`
mysql_stream_connect(httpd_sys_script_t)
+ mysql_rw_db_socket(httpd_sys_script_t)
')
########################################
diff --git a/refpolicy/policy/modules/services/mysql.if b/refpolicy/policy/modules/services/mysql.if
index fd6e75d5..cbda7b41 100644
--- a/refpolicy/policy/modules/services/mysql.if
+++ b/refpolicy/policy/modules/services/mysql.if
@@ -11,7 +11,6 @@
interface(`mysql_signal',`
gen_require(`
type mysqld_t;
- class process signal;
')
allow $1 mysqld_t:process signal;
@@ -28,9 +27,6 @@ interface(`mysql_signal',`
interface(`mysql_stream_connect',`
gen_require(`
type mysqld_t, mysqld_var_run_t;
- class unix_stream_socket connectto;
- class dir search;
- class sock_file write;
')
allow $1 mysqld_var_run_t:dir search;
@@ -49,9 +45,6 @@ interface(`mysql_stream_connect',`
interface(`mysql_read_config',`
gen_require(`
type mysqld_etc_t;
- class dir { getattr read search };
- class file { read getattr };
- class lnk_file { getattr read };
')
allow $1 mysqld_etc_t:dir { getattr read search };
@@ -73,7 +66,6 @@ interface(`mysql_read_config',`
interface(`mysql_search_db_dir',`
gen_require(`
type mysqld_db_t;
- class dir search;
')
files_search_var_lib($1)
@@ -91,7 +83,6 @@ interface(`mysql_search_db_dir',`
interface(`mysql_rw_db_dir',`
gen_require(`
type mysqld_db_t;
- class rw_dir_perms;
')
files_search_var_lib($1)
@@ -109,13 +100,31 @@ interface(`mysql_rw_db_dir',`
interface(`mysql_manage_db_dir',`
gen_require(`
type mysql_db_t;
- class create_dir_perms;
')
files_search_var_lib($1)
allow $1 mysqld_db_t:dir create_dir_perms;
')
+########################################
+##
+## Read and write to the MySQL database
+## named socket.
+##
+##
+## Domain allowed access.
+##
+#
+interface(`mysql_rw_db_socket',`
+ gen_require(`
+ type mysqld_db_t;
+ ')
+
+ files_search_var_lib($1)
+ allow $1 mysqld_db_t:dir search;
+ allow $1 mysqld_db_t:sock_file rw_file_perms;
+')
+
########################################
##
## Write to the MySQL log.
@@ -127,7 +136,6 @@ interface(`mysql_manage_db_dir',`
interface(`mysql_write_log',`
gen_require(`
type mysqld_log_t;
- class file { write append setattr ioctl };
')
logging_search_logs($1)