Package: refpolicy / 2:2.20110726-12

0038-mysqld-policy-fixes-Allow-mysqld_safe_t-to-send-mess.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
From: =?UTF-8?q?Mika=20Pfl=C3=BCger?= <debian@mikapflueger.de>
Date: Fri, 2 Mar 2012 03:21:42 +0100
Subject: mysqld policy fixes: * Allow mysqld_safe_t to send messages to
 syslogd * Allow mysqld_t to run shell scripts (shell_exec_t and
 bin_t) * Add interface to execute mysqld in its own domain for use
 in userdomain

---
 policy/modules/services/mysql.fc    |    2 ++
 policy/modules/services/mysql.if    |   20 ++++++++++++++++++++
 policy/modules/services/mysql.te    |    6 +++++-
 policy/modules/system/userdomain.if |    4 ++++
 4 files changed, 31 insertions(+), 1 deletions(-)

Index: refpolicy-2.20110726/policy/modules/services/mysql.fc
===================================================================
--- refpolicy-2.20110726.orig/policy/modules/services/mysql.fc	2012-06-21 23:34:14.161996253 +1000
+++ refpolicy-2.20110726/policy/modules/services/mysql.fc	2012-06-21 23:36:11.775098907 +1000
@@ -16,6 +16,8 @@
 /usr/libexec/mysqld	--	gen_context(system_u:object_r:mysqld_exec_t,s0)
 
 /usr/sbin/mysqld(-max)?	--	gen_context(system_u:object_r:mysqld_exec_t,s0)
+/usr/sbin/ndbd		--	gen_context(system_u:object_r:mysqld_exec_t,s0)
+/usr/bin/mysql_upgrade	--	gen_context(system_u:object_r:mysqld_exec_t,s0)
 /usr/sbin/mysqlmanager	--	gen_context(system_u:object_r:mysqlmanagerd_exec_t,s0)
 
 #
Index: refpolicy-2.20110726/policy/modules/services/mysql.if
===================================================================
--- refpolicy-2.20110726.orig/policy/modules/services/mysql.if	2012-06-21 23:34:14.161996253 +1000
+++ refpolicy-2.20110726/policy/modules/services/mysql.if	2012-06-21 23:36:11.775098907 +1000
@@ -353,3 +353,23 @@
 
 	admin_pattern($1, mysqld_tmp_t)
 ')
+
+########################################
+## <summary>
+##	Execute mysqld in the caller domain.
+## </summary>
+## <param name="domain">
+##	<summary>
+##	Domain allowed access.
+## 	</summary>
+## </param>
+## <rolecap/>
+#
+interface(`mysqld_exec',`
+	gen_require(`
+		type mysqld_exec_t;
+	')
+
+	corecmd_search_bin($1)
+	can_exec($1, mysqld_exec_t)
+')
Index: refpolicy-2.20110726/policy/modules/services/mysql.te
===================================================================
--- refpolicy-2.20110726.orig/policy/modules/services/mysql.te	2012-06-21 23:34:14.161996253 +1000
+++ refpolicy-2.20110726/policy/modules/services/mysql.te	2012-06-21 23:36:11.775098907 +1000
@@ -58,10 +58,13 @@
 allow mysqld_t self:process { setsched getsched setrlimit signal_perms rlimitinh };
 allow mysqld_t self:fifo_file rw_fifo_file_perms;
 allow mysqld_t self:shm create_shm_perms;
-allow mysqld_t self:unix_stream_socket create_stream_socket_perms;
+allow mysqld_t self:unix_stream_socket { create_stream_socket_perms connectto };
 allow mysqld_t self:tcp_socket create_stream_socket_perms;
 allow mysqld_t self:udp_socket create_socket_perms;
 
+corecmd_exec_shell(mysqld_t)
+corecmd_exec_bin(mysqld_t)
+
 manage_dirs_pattern(mysqld_t, mysqld_db_t, mysqld_db_t)
 manage_files_pattern(mysqld_t, mysqld_db_t, mysqld_db_t)
 manage_lnk_files_pattern(mysqld_t, mysqld_db_t, mysqld_db_t)
@@ -180,6 +183,7 @@
 files_dontaudit_getattr_all_dirs(mysqld_safe_t)
 
 logging_log_filetrans(mysqld_safe_t, mysqld_log_t, file)
+logging_send_syslog_msg(mysqld_safe_t)
 
 hostname_exec(mysqld_safe_t)
 
Index: refpolicy-2.20110726/policy/modules/system/userdomain.if
===================================================================
--- refpolicy-2.20110726.orig/policy/modules/system/userdomain.if	2012-06-21 23:35:43.566813277 +1000
+++ refpolicy-2.20110726/policy/modules/system/userdomain.if	2012-06-21 23:36:11.779098943 +1000
@@ -985,6 +985,10 @@
 	optional_policy(`
 		setroubleshoot_stream_connect($1_t)
 	')
+
+	optional_policy(`
+		mysqld_exec($1_t)
+	')
 ')
 
 #######################################