6b4b4b
diff --git a/apache.te b/apache.te
6b4b4b
index 3226dec..e9c7099 100644
6b4b4b
--- a/apache.te
6b4b4b
+++ b/apache.te
6b4b4b
@@ -1028,6 +1028,7 @@ optional_policy(`
6b4b4b
 
6b4b4b
 optional_policy(`
6b4b4b
 	nagios_read_config(httpd_t)
6b4b4b
+    nagios_read_lib(httpd_t)
6b4b4b
 	nagios_read_log(httpd_t)
6b4b4b
 ')
6b4b4b
 
f2c1e7
diff --git a/chrome.te b/chrome.te
f2c1e7
index f50b201..5c852ff 100644
f2c1e7
--- a/chrome.te
f2c1e7
+++ b/chrome.te
f2c1e7
@@ -35,7 +35,7 @@ allow chrome_sandbox_t self:capability2 block_suspend;
f2c1e7
 allow chrome_sandbox_t self:capability { chown dac_override fsetid setgid setuid sys_admin sys_chroot sys_ptrace };
f2c1e7
 dontaudit chrome_sandbox_t self:capability sys_nice;
f2c1e7
 allow chrome_sandbox_t self:process { signal_perms setrlimit execmem execstack };
f2c1e7
-allow chrome_sandbox_t self:process setsched;
f2c1e7
+allow chrome_sandbox_t self:process { setcap setsched };
f2c1e7
 allow chrome_sandbox_t self:fifo_file manage_fifo_file_perms;
f2c1e7
 allow chrome_sandbox_t self:unix_stream_socket create_stream_socket_perms;
f2c1e7
 allow chrome_sandbox_t self:unix_dgram_socket { create_socket_perms sendto };
f2c1e7
@@ -60,6 +60,8 @@ fs_tmpfs_filetrans(chrome_sandbox_t, chrome_sandbox_tmpfs_t, { file dir })
f2c1e7
 kernel_read_system_state(chrome_sandbox_t)
f2c1e7
 kernel_read_kernel_sysctls(chrome_sandbox_t)
f2c1e7
 
f2c1e7
+auth_dontaudit_read_passwd(chrome_sandbox_t)
f2c1e7
+
f2c1e7
 fs_manage_cgroup_dirs(chrome_sandbox_t)
f2c1e7
 fs_manage_cgroup_files(chrome_sandbox_t)
f2c1e7
 fs_read_dos_files(chrome_sandbox_t)
5b5f49
diff --git a/cron.te b/cron.te
5b5f49
index 0ee059a..9d2cd2d 100644
5b5f49
--- a/cron.te
5b5f49
+++ b/cron.te
5b5f49
@@ -27,6 +27,14 @@ gen_tunable(cron_can_relabel, false)
5b5f49
 gen_tunable(cron_userdomain_transition, true)
5b5f49
 
5b5f49
 ## <desc>
5b5f49
+##  

5b5f49
+##  Allow system cronjob to be executed on
5b5f49
+##  on NFS, CIFS or FUSE filesystem.
5b5f49
+##  

5b5f49
+## </desc>
5b5f49
+gen_tunable(cron_system_cronjob_use_shares, false)
5b5f49
+
5b5f49
+## <desc>
5b5f49
 ##	

5b5f49
 ##	Enable extra rules in the cron domain
5b5f49
 ##	to support fcron.
5b5f49
@@ -404,6 +412,12 @@ manage_files_pattern(system_cronjob_t, system_cron_spool_t, system_cron_spool_t)
5b5f49
 # for this purpose.
5b5f49
 allow system_cronjob_t system_cron_spool_t:file entrypoint;
5b5f49
 
5b5f49
+tunable_policy(`cron_system_cronjob_use_shares',`
5b5f49
+    fs_fusefs_entrypoint(system_cronjob_t)
5b5f49
+    fs_nfs_entrypoint(system_cronjob_t)
5b5f49
+    fs_cifs_entrypoint(system_cronjob_t)
5b5f49
+')
5b5f49
+
5b5f49
 # Permit a transition from the crond_t domain to this domain.
5b5f49
 # The transition is requested explicitly by the modified crond 
5b5f49
 # via setexeccon.  There is no way to set up an automatic
6b4b4b
diff --git a/ctdb.if b/ctdb.if
6b4b4b
index e99c5c6..ffc5497 100644
6b4b4b
--- a/ctdb.if
6b4b4b
+++ b/ctdb.if
6b4b4b
@@ -38,6 +38,23 @@ interface(`ctdbd_initrc_domtrans',`
6b4b4b
 	init_labeled_script_domtrans($1, ctdbd_initrc_exec_t)
6b4b4b
 ')
6b4b4b
 
6b4b4b
+#######################################
6b4b4b
+## <summary>
6b4b4b
+##  Allow domain to signal ctdbd.
6b4b4b
+## </summary>
6b4b4b
+## <param name="domain">
6b4b4b
+##  <summary>
6b4b4b
+##  Domain allowed access.
6b4b4b
+##  </summary>
6b4b4b
+## </param>
6b4b4b
+#
6b4b4b
+interface(`ctdbd_signal',`
6b4b4b
+    gen_require(`
6b4b4b
+        type ctdbd_t;
6b4b4b
+    ')
6b4b4b
+        allow $1 ctdbd_t:process signal;
6b4b4b
+')
6b4b4b
+
6b4b4b
 ########################################
6b4b4b
 ## <summary>
6b4b4b
 ##	Read ctdbd's log files.
6b4b4b
@@ -100,26 +117,26 @@ interface(`ctdbd_manage_log',`
6b4b4b
 
6b4b4b
 ########################################
6b4b4b
 ## <summary>
6b4b4b
-##	Search ctdbd lib directories.
6b4b4b
+##     Manage ctdbd lib files.
6b4b4b
 ## </summary>
6b4b4b
 ## <param name="domain">
6b4b4b
-##	<summary>
6b4b4b
-##	Domain allowed access.
6b4b4b
-##	</summary>
6b4b4b
+##     <summary>
6b4b4b
+##     Domain allowed access.
6b4b4b
+##     </summary>
6b4b4b
 ## </param>
6b4b4b
 #
6b4b4b
-interface(`ctdbd_search_lib',`
6b4b4b
-	gen_require(`
6b4b4b
-		type ctdbd_var_lib_t;
6b4b4b
-	')
6b4b4b
+interface(`ctdbd_manage_var_files',`
6b4b4b
+       gen_require(`
6b4b4b
+               type ctdbd_var_t;
6b4b4b
+       ')
6b4b4b
 
6b4b4b
-	allow $1 ctdbd_var_lib_t:dir search_dir_perms;
6b4b4b
-	files_search_var_lib($1)
6b4b4b
+       files_search_var_lib($1)
6b4b4b
+    manage_files_pattern($1, ctdbd_var_t, ctdbd_var_t)
6b4b4b
 ')
6b4b4b
 
6b4b4b
 ########################################
6b4b4b
 ## <summary>
6b4b4b
-##	Read ctdbd lib files.
6b4b4b
+##	Search ctdbd lib directories.
6b4b4b
 ## </summary>
6b4b4b
 ## <param name="domain">
6b4b4b
 ##	<summary>
6b4b4b
@@ -127,18 +144,18 @@ interface(`ctdbd_search_lib',`
6b4b4b
 ##	</summary>
6b4b4b
 ## </param>
6b4b4b
 #
6b4b4b
-interface(`ctdbd_read_lib_files',`
6b4b4b
+interface(`ctdbd_search_lib',`
6b4b4b
 	gen_require(`
6b4b4b
 		type ctdbd_var_lib_t;
6b4b4b
 	')
6b4b4b
 
6b4b4b
+	allow $1 ctdbd_var_lib_t:dir search_dir_perms;
6b4b4b
 	files_search_var_lib($1)
6b4b4b
-        read_files_pattern($1, ctdbd_var_lib_t, ctdbd_var_lib_t)
6b4b4b
 ')
6b4b4b
 
6b4b4b
 ########################################
6b4b4b
 ## <summary>
6b4b4b
-##	Manage ctdbd lib files.
6b4b4b
+##	Read ctdbd lib files.
6b4b4b
 ## </summary>
6b4b4b
 ## <param name="domain">
6b4b4b
 ##	<summary>
6b4b4b
@@ -146,13 +163,13 @@ interface(`ctdbd_read_lib_files',`
6b4b4b
 ##	</summary>
6b4b4b
 ## </param>
6b4b4b
 #
6b4b4b
-interface(`ctdbd_manage_lib_files',`
6b4b4b
+interface(`ctdbd_read_lib_files',`
6b4b4b
 	gen_require(`
6b4b4b
 		type ctdbd_var_lib_t;
6b4b4b
 	')
6b4b4b
 
6b4b4b
 	files_search_var_lib($1)
6b4b4b
-        manage_files_pattern($1, ctdbd_var_lib_t, ctdbd_var_lib_t)
6b4b4b
+        read_files_pattern($1, ctdbd_var_lib_t, ctdbd_var_lib_t)
6b4b4b
 ')
6b4b4b
 
6b4b4b
 ########################################
6b4b4b
@@ -165,13 +182,13 @@ interface(`ctdbd_manage_lib_files',`
6b4b4b
 ##	</summary>
6b4b4b
 ## </param>
6b4b4b
 #
6b4b4b
-interface(`ctdbd_manage_var_files',`
6b4b4b
+interface(`ctdbd_manage_lib_files',`
6b4b4b
 	gen_require(`
6b4b4b
-		type ctdbd_var_t;
6b4b4b
+		type ctdbd_var_lib_t;
6b4b4b
 	')
6b4b4b
 
6b4b4b
 	files_search_var_lib($1)
6b4b4b
-    manage_files_pattern($1, ctdbd_var_t, ctdbd_var_t)
6b4b4b
+        manage_files_pattern($1, ctdbd_var_lib_t, ctdbd_var_lib_t)
6b4b4b
 ')
6b4b4b
 
6b4b4b
 ########################################
6b4b4b
diff --git a/ctdb.te b/ctdb.te
5b5f49
index 2ab29db..4a84c8b 100644
6b4b4b
--- a/ctdb.te
6b4b4b
+++ b/ctdb.te
6b4b4b
@@ -44,6 +44,7 @@ allow ctdbd_t self:netlink_route_socket r_netlink_socket_perms;
6b4b4b
 allow ctdbd_t self:packet_socket create_socket_perms;
6b4b4b
 allow ctdbd_t self:tcp_socket create_stream_socket_perms;
6b4b4b
 allow ctdbd_t self:udp_socket create_socket_perms;
6b4b4b
+allow ctdbd_t self:rawip_socket create_socket_perms;
6b4b4b
 
6b4b4b
 append_files_pattern(ctdbd_t, ctdbd_log_t, ctdbd_log_t)
6b4b4b
 create_files_pattern(ctdbd_t, ctdbd_log_t, ctdbd_log_t)
6b4b4b
@@ -75,6 +76,8 @@ manage_files_pattern(ctdbd_t, ctdbd_var_run_t, ctdbd_var_run_t)
6b4b4b
 manage_sock_files_pattern(ctdbd_t, ctdbd_var_run_t, ctdbd_var_run_t)
6b4b4b
 files_pid_filetrans(ctdbd_t, ctdbd_var_run_t, dir)
6b4b4b
 
6b4b4b
+can_exec(ctdbd_t, ctdbd_exec_t)
6b4b4b
+
6b4b4b
 kernel_read_network_state(ctdbd_t)
6b4b4b
 kernel_read_system_state(ctdbd_t)
6b4b4b
 kernel_rw_net_sysctls(ctdbd_t)
6b4b4b
@@ -89,6 +92,7 @@ corenet_udp_bind_generic_node(ctdbd_t)
6b4b4b
 corenet_sendrecv_ctdb_server_packets(ctdbd_t)
6b4b4b
 corenet_tcp_bind_ctdb_port(ctdbd_t)
6b4b4b
 corenet_udp_bind_ctdb_port(ctdbd_t)
6b4b4b
+corenet_tcp_bind_smbd_port(ctdbd_t)
6b4b4b
 corenet_tcp_connect_ctdb_port(ctdbd_t)
6b4b4b
 corenet_tcp_sendrecv_ctdb_port(ctdbd_t)
6b4b4b
 
6b4b4b
@@ -110,6 +114,8 @@ logging_send_syslog_msg(ctdbd_t)
6b4b4b
 
6b4b4b
 miscfiles_read_public_files(ctdbd_t)
6b4b4b
 
6b4b4b
+userdom_home_manager(ctdbd_t)
6b4b4b
+
6b4b4b
 optional_policy(`
6b4b4b
 	consoletype_exec(ctdbd_t)
6b4b4b
 ')
5b5f49
@@ -123,6 +129,7 @@ optional_policy(`
5b5f49
 ')
5b5f49
 
5b5f49
 optional_policy(`
5b5f49
+    samba_signull_smbd(ctdbd_t)
5b5f49
 	samba_initrc_domtrans(ctdbd_t)
5b5f49
 	samba_domtrans_net(ctdbd_t)
5b5f49
 	samba_rw_var_files(ctdbd_t)
5b5f49
@@ -130,5 +137,10 @@ optional_policy(`
5b5f49
 ')
5b5f49
 
5b5f49
 optional_policy(`
5b5f49
+    samba_signull_winbind(ctdbd_t)
5b5f49
+    samba_signull_unconfined_net(ctdbd_t)
5b5f49
+')
5b5f49
+
5b5f49
+optional_policy(`
5b5f49
 	sysnet_domtrans_ifconfig(ctdbd_t)
5b5f49
 ')
6b4b4b
diff --git a/glusterd.if b/glusterd.if
5b5f49
index c62ad86..fc9bf19 100644
6b4b4b
--- a/glusterd.if
6b4b4b
+++ b/glusterd.if
5b5f49
@@ -117,7 +117,84 @@ interface(`glusterd_manage_log',`
6b4b4b
 	manage_lnk_files_pattern($1, glusterd_log_t, glusterd_log_t)
6b4b4b
 ')
6b4b4b
 
5b5f49
-########################################
6b4b4b
+######################################
6b4b4b
+## <summary>
6b4b4b
+##  Allow the specified domain to execute gluster's lib files.
6b4b4b
+## </summary>
6b4b4b
+## <param name="domain">
6b4b4b
+##  <summary>
6b4b4b
+##  Domain allowed access.
6b4b4b
+##  </summary>
6b4b4b
+## </param>
6b4b4b
+#
6b4b4b
+interface(`gluster_execute_lib',`
6b4b4b
+    gen_require(`
6b4b4b
+        type glusterd_var_lib_t;
6b4b4b
+    ')
6b4b4b
+
6b4b4b
+    files_list_var_lib($1)
6b4b4b
+    allow $1 glusterd_var_lib_t:dir search_dir_perms;
6b4b4b
+    can_exec($1, glusterd_var_lib_t)
6b4b4b
+')
6b4b4b
+
6b4b4b
+######################################
6b4b4b
+## <summary>
6b4b4b
+##  Read glusterd's config files.
6b4b4b
+## </summary>
6b4b4b
+## <param name="domain">
6b4b4b
+##  <summary>
6b4b4b
+##  Domain allowed access.
6b4b4b
+##  </summary>
6b4b4b
+## </param>
6b4b4b
+#
6b4b4b
+interface(`glusterd_read_conf',`
6b4b4b
+       gen_require(`
6b4b4b
+               type glusterd_conf_t;
6b4b4b
+       ')
6b4b4b
+
6b4b4b
+    files_search_etc($1)
6b4b4b
+    read_files_pattern($1, glusterd_conf_t, glusterd_conf_t)
6b4b4b
+')
6b4b4b
+
6b4b4b
+######################################
6b4b4b
+## <summary>
6b4b4b
+##  Read and write /var/lib/glusterd files.
6b4b4b
+## </summary>
6b4b4b
+## <param name="domain">
6b4b4b
+##  <summary>
6b4b4b
+##  Domain allowed access.
6b4b4b
+##  </summary>
6b4b4b
+## </param>
6b4b4b
+#
6b4b4b
+interface(`glusterd_rw_lib',`
6b4b4b
+       gen_require(`
6b4b4b
+               type glusterd_var_lib_t;
6b4b4b
+       ')
6b4b4b
+
6b4b4b
+    files_search_var_lib($1)
6b4b4b
+    rw_files_pattern($1, glusterd_var_lib_t, glusterd_var_lib_t)
6b4b4b
+')
6b4b4b
+
5b5f49
+######################################
5b5f49
+## <summary>
5b5f49
+## Read and write /var/lib/glusterd files.
5b5f49
+## </summary>
5b5f49
+## <param name="domain">
5b5f49
+##     <summary>
5b5f49
+##     Domain allowed access.
5b5f49
+##     </summary>
5b5f49
+## </param>
5b5f49
+#
5b5f49
+interface(`glusterd_manage_lib_files',`
5b5f49
+       gen_require(`
5b5f49
+               type glusterd_var_lib_t;
5b5f49
+       ')
5b5f49
+
5b5f49
+    files_search_var_lib($1)
5b5f49
+    manage_files_pattern($1, glusterd_var_lib_t, glusterd_var_lib_t)
5b5f49
+')
5b5f49
+
5b5f49
+######################################
6b4b4b
 ## <summary>
6b4b4b
 ##	All of the rules required to administrate
5b5f49
 ##	an glusterd environment
6b4b4b
diff --git a/glusterd.te b/glusterd.te
5b5f49
index fbc6a67..b974353 100644
6b4b4b
--- a/glusterd.te
6b4b4b
+++ b/glusterd.te
6b4b4b
@@ -31,6 +31,7 @@ gen_tunable(gluster_export_all_rw, true)
6b4b4b
 type glusterd_t;
6b4b4b
 type glusterd_exec_t;
6b4b4b
 init_daemon_domain(glusterd_t, glusterd_exec_t)
6b4b4b
+domain_obj_id_change_exemption(glusterd_t)
6b4b4b
 
6b4b4b
 type glusterd_conf_t;
6b4b4b
 files_type(glusterd_conf_t)
6b4b4b
@@ -58,13 +59,16 @@ files_type(glusterd_brick_t)
6b4b4b
 # Local policy
6b4b4b
 #
6b4b4b
 
6b4b4b
-allow glusterd_t self:capability { sys_admin sys_resource dac_override chown dac_read_search fowner fsetid kill setgid setuid net_admin };
6b4b4b
+allow glusterd_t self:capability { sys_admin sys_resource sys_ptrace dac_override chown dac_read_search fowner fsetid kill setgid setuid net_admin mknod net_raw };
6b4b4b
 
6b4b4b
 allow glusterd_t self:capability2 block_suspend;
6b4b4b
-allow glusterd_t self:process { getcap setcap setrlimit signal_perms };
6b4b4b
+allow glusterd_t self:process { getcap setcap setrlimit signal_perms setsched getsched };
6b4b4b
+allow glusterd_t self:sem create_sem_perms;
6b4b4b
 allow glusterd_t self:fifo_file rw_fifo_file_perms;
6b4b4b
 allow glusterd_t self:tcp_socket { accept listen };
6b4b4b
 allow glusterd_t self:unix_stream_socket { accept listen connectto };
6b4b4b
+allow glusterd_t self:rawip_socket create_socket_perms;
6b4b4b
+allow glusterd_t self:unix_stream_socket create_stream_socket_perms;
6b4b4b
 
6b4b4b
 manage_dirs_pattern(glusterd_t, glusterd_conf_t, glusterd_conf_t)
6b4b4b
 manage_files_pattern(glusterd_t, glusterd_conf_t, glusterd_conf_t)
6b4b4b
@@ -97,9 +101,13 @@ manage_dirs_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
6b4b4b
 manage_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
6b4b4b
 manage_fifo_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
6b4b4b
 manage_lnk_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
6b4b4b
+manage_blk_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
6b4b4b
+manage_chr_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
6b4b4b
 relabel_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
6b4b4b
 relabel_lnk_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
6b4b4b
 relabel_dirs_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
6b4b4b
+relabel_chr_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
6b4b4b
+relabel_blk_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t)
6b4b4b
 
6b4b4b
 can_exec(glusterd_t, glusterd_exec_t)
6b4b4b
 
6b4b4b
@@ -121,6 +129,7 @@ corenet_tcp_sendrecv_all_ports(glusterd_t)
6b4b4b
 corenet_udp_sendrecv_all_ports(glusterd_t)
6b4b4b
 corenet_tcp_bind_generic_node(glusterd_t)
6b4b4b
 corenet_udp_bind_generic_node(glusterd_t)
6b4b4b
+corenet_raw_bind_generic_node(glusterd_t)
6b4b4b
 
6b4b4b
 corenet_tcp_connect_gluster_port(glusterd_t)
6b4b4b
 corenet_tcp_bind_gluster_port(glusterd_t)
5b5f49
@@ -141,11 +150,15 @@ corenet_tcp_bind_all_unreserved_ports(glusterd_t)
5b5f49
 corenet_tcp_connect_all_unreserved_ports(glusterd_t)
5b5f49
 corenet_tcp_connect_all_ephemeral_ports(glusterd_t)
5b5f49
 corenet_tcp_connect_ssh_port(glusterd_t)
5b5f49
+corenet_tcp_connect_all_rpc_ports(glusterd_t)
5b5f49
+corenet_tcp_connect_all_ports(glusterd_t)
6b4b4b
 
6b4b4b
 dev_read_sysfs(glusterd_t)
6b4b4b
 dev_read_urand(glusterd_t)
6b4b4b
+dev_read_rand(glusterd_t)
6b4b4b
 
6b4b4b
 domain_read_all_domains_state(glusterd_t)
5b5f49
+domain_getattr_all_sockets(glusterd_t)
5b5f49
 
5b5f49
 domain_use_interactive_fds(glusterd_t)
5b5f49
 
5b5f49
@@ -155,13 +168,30 @@ fs_getattr_all_fs(glusterd_t)
6b4b4b
 
6b4b4b
 files_mounton_non_security(glusterd_t)
6b4b4b
 
5b5f49
+files_dontaudit_read_security_files(glusterd_t)
5b5f49
+files_dontaudit_list_security_dirs(glusterd_t)
5b5f49
+
6b4b4b
 storage_rw_fuse(glusterd_t)
6b4b4b
+#needed by /usr/sbin/xfs_db
6b4b4b
+storage_raw_read_fixed_disk(glusterd_t)
6b4b4b
+storage_raw_write_fixed_disk(glusterd_t)
6b4b4b
 
6b4b4b
 auth_use_nsswitch(glusterd_t)
6b4b4b
 
6b4b4b
 fs_getattr_all_fs(glusterd_t)
6b4b4b
 
6b4b4b
+init_domtrans_script(glusterd_t)
6b4b4b
+init_initrc_domain(glusterd_t)
6b4b4b
+init_read_script_state(glusterd_t)
6b4b4b
+init_rw_script_tmp_files(glusterd_t)
6b4b4b
+init_manage_script_status_files(glusterd_t)
6b4b4b
+
6b4b4b
+systemd_config_systemd_services(glusterd_t)
6b4b4b
+systemd_signal_passwd_agent(glusterd_t)
6b4b4b
+
6b4b4b
 logging_send_syslog_msg(glusterd_t)
5b5f49
+logging_dontaudit_search_audit_logs(glusterd_t)
5b5f49
+
6b4b4b
 libs_exec_ldconfig(glusterd_t)
6b4b4b
 
5b5f49
 miscfiles_read_localization(glusterd_t)
5b5f49
@@ -169,8 +199,15 @@ miscfiles_read_public_files(glusterd_t)
5b5f49
 
5b5f49
 userdom_manage_user_home_dirs(glusterd_t)
6b4b4b
 userdom_filetrans_home_content(glusterd_t)
5b5f49
+userdom_read_user_tmp_files(glusterd_t)
5b5f49
+userdom_delete_user_tmp_files(glusterd_t)
5b5f49
+userdom_rw_user_tmp_files(glusterd_t)
5b5f49
+userdom_kill_all_users(glusterd_t)
6b4b4b
 
6b4b4b
 mount_domtrans(glusterd_t)
6b4b4b
+
6b4b4b
+fstools_domtrans(glusterd_t)
6b4b4b
+
6b4b4b
 tunable_policy(`gluster_anon_write',`
6b4b4b
 	miscfiles_manage_public_files(glusterd_t)
6b4b4b
 ') 
5b5f49
@@ -178,6 +215,8 @@ tunable_policy(`gluster_anon_write',`
5b5f49
 tunable_policy(`gluster_export_all_ro',`
5b5f49
 	fs_read_noxattr_fs_files(glusterd_t) 
5b5f49
 	files_read_non_security_files(glusterd_t) 
5b5f49
+    files_getattr_all_pipes(glusterd_t)
5b5f49
+    files_getattr_all_sockets(glusterd_t)
6b4b4b
 ')
6b4b4b
 
5b5f49
 tunable_policy(`gluster_export_all_rw',`
5b5f49
@@ -185,6 +224,45 @@ tunable_policy(`gluster_export_all_rw',`
5b5f49
 	files_manage_non_security_dirs(glusterd_t)
5b5f49
 	files_manage_non_security_files(glusterd_t)
5b5f49
     files_relabel_base_file_types(glusterd_t)
5b5f49
+    files_getattr_all_pipes(glusterd_t)
5b5f49
+    files_getattr_all_sockets(glusterd_t)
5b5f49
+')
5b5f49
+
5b5f49
+optional_policy(`
6b4b4b
+    ctdbd_domtrans(glusterd_t)
6b4b4b
+    ctdbd_signal(glusterd_t)
6b4b4b
+')
6b4b4b
+
6b4b4b
+optional_policy(`
6b4b4b
+    dbus_system_bus_client(glusterd_t)
6b4b4b
+    dbus_connect_system_bus(glusterd_t)
6b4b4b
+
6b4b4b
+    optional_policy(`
6b4b4b
+        policykit_dbus_chat(glusterd_t)
6b4b4b
+    ')
6b4b4b
+')
6b4b4b
+
6b4b4b
+optional_policy(`
6b4b4b
+    hostname_exec(glusterd_t)
6b4b4b
+')
6b4b4b
+
6b4b4b
+optional_policy(`
6b4b4b
+    lvm_domtrans(glusterd_t)
6b4b4b
+')
6b4b4b
+
6b4b4b
+optional_policy(`
5b5f49
+    mount_domtrans_showmount(glusterd_t)
5b5f49
+')
5b5f49
+
5b5f49
+optional_policy(`
6b4b4b
+    samba_domtrans_smbd(glusterd_t)
6b4b4b
+    samba_systemctl(glusterd_t)
6b4b4b
+    samba_signal_smbd(glusterd_t)
6b4b4b
+    samba_manage_config(glusterd_t)
6b4b4b
+')
6b4b4b
+
6b4b4b
+optional_policy(`
6b4b4b
+    ssh_exec_keygen(glusterd_t)
6b4b4b
 ')
5b5f49
 
5b5f49
 optional_policy(`
5b5f49
@@ -197,5 +275,21 @@ optional_policy(`
6b4b4b
 ')
6b4b4b
 
6b4b4b
 optional_policy(`
5b5f49
+    rpc_systemctl_nfsd(glusterd_t)
5b5f49
+    rpc_systemctl_rpcd(glusterd_t)
5b5f49
+
5b5f49
+    rpc_domtrans_nfsd(glusterd_t)
5b5f49
+    rpc_domtrans_rpcd(glusterd_t)
5b5f49
+    rpc_manage_nfs_state_data(glusterd_t)
5b5f49
+')
5b5f49
+
5b5f49
+optional_policy(`
6b4b4b
+    rhcs_dbus_chat_cluster(glusterd_t)
6b4b4b
+    rhcs_domtrans_cluster(glusterd_t)
6b4b4b
+    rhcs_systemctl_cluster(glusterd_t)
5b5f49
+    rhcs_stream_connect_cluster(glusterd_t)
6b4b4b
+')
6b4b4b
+
6b4b4b
+optional_policy(`
6b4b4b
 	ssh_exec(glusterd_t)
6b4b4b
 ')
2da12e
diff --git a/mongodb.fc b/mongodb.fc
2da12e
index 91adcaf..e9e6bc5 100644
2da12e
--- a/mongodb.fc
2da12e
+++ b/mongodb.fc
2da12e
@@ -1,9 +1,15 @@
2da12e
 /etc/rc\.d/init\.d/mongod	--	gen_context(system_u:object_r:mongod_initrc_exec_t,s0)
2da12e
+/etc/rc\.d/init\.d/mongos	--	gen_context(system_u:object_r:mongod_initrc_exec_t,s0)
2da12e
+
2da12e
+/usr/lib/systemd/system/mongod.*    --     gen_context(system_u:object_r:mongod_unit_file_t,s0)
2da12e
+/usr/lib/systemd/system/mongos.*    --     gen_context(system_u:object_r:mongod_unit_file_t,s0)
2da12e
 
2da12e
 /usr/bin/mongod	                                --	gen_context(system_u:object_r:mongod_exec_t,s0)
2da12e
 /usr/bin/mongos	                                --	gen_context(system_u:object_r:mongod_exec_t,s0)
2da12e
 /usr/share/aeolus-conductor/dbomatic/dbomatic   --   gen_context(system_u:object_r:mongod_exec_t,s0)
2da12e
 
2da12e
+/usr/libexec/mongodb-scl-helper             --      gen_context(system_u:object_r:mongod_exec_t,s0)
2da12e
+
2da12e
 /var/lib/mongo.*	gen_context(system_u:object_r:mongod_var_lib_t,s0)
2da12e
 
2da12e
 /var/log/mongo.*	                                    gen_context(system_u:object_r:mongod_log_t,s0)
2da12e
diff --git a/mongodb.te b/mongodb.te
2da12e
index dec8a95..d3fdae4 100644
2da12e
--- a/mongodb.te
2da12e
+++ b/mongodb.te
2da12e
@@ -12,6 +12,9 @@ init_daemon_domain(mongod_t, mongod_exec_t)
2da12e
 type mongod_initrc_exec_t;
2da12e
 init_script_file(mongod_initrc_exec_t)
2da12e
 
2da12e
+type mongod_unit_file_t;
2da12e
+systemd_unit_file(mongod_unit_file_t)
2da12e
+
2da12e
 type mongod_log_t;
2da12e
 logging_log_file(mongod_log_t)
2da12e
 
2da12e
@@ -30,7 +33,7 @@ files_tmp_file(mongod_tmp_t)
2da12e
 #
2da12e
 
2da12e
 
2da12e
-allow mongod_t self:process { setsched signal };
2da12e
+allow mongod_t self:process { setsched signal execmem };
2da12e
 allow mongod_t self:fifo_file rw_fifo_file_perms;
2da12e
 
2da12e
 allow mongod_t self:netlink_route_socket r_netlink_socket_perms;
2da12e
@@ -69,6 +72,8 @@ corenet_tcp_connect_mongod_port(mongod_t)
2da12e
 corenet_tcp_bind_mongod_port(mongod_t)
2da12e
 corenet_tcp_bind_generic_node(mongod_t)
2da12e
 
2da12e
+auth_use_nsswitch(mongod_t)
2da12e
+
2da12e
 dev_read_sysfs(mongod_t)
2da12e
 dev_read_urand(mongod_t)
2da12e
 
2da12e
diff --git a/mysql.fc b/mysql.fc
2da12e
index 4a315d5..c2c13aa 100644
2da12e
--- a/mysql.fc
2da12e
+++ b/mysql.fc
2da12e
@@ -14,6 +14,7 @@ HOME_DIR/\.my\.cnf -- gen_context(system_u:object_r:mysqld_home_t, s0)
2da12e
 #
2da12e
 /etc/my\.cnf		--	gen_context(system_u:object_r:mysqld_etc_t,s0)
2da12e
 /etc/mysql(/.*)?		gen_context(system_u:object_r:mysqld_etc_t,s0)
2da12e
+/etc/my\.cnf\.d(/.*)?		gen_context(system_u:object_r:mysqld_etc_t,s0)
2da12e
 /etc/rc\.d/init\.d/mysqld --	gen_context(system_u:object_r:mysqld_initrc_exec_t,s0)
2da12e
 /etc/rc\.d/init\.d/mysqlmanager -- gen_context(system_u:object_r:mysqlmanagerd_initrc_exec_t,s0)
2da12e
 
2da12e
@@ -24,6 +25,8 @@ HOME_DIR/\.my\.cnf -- gen_context(system_u:object_r:mysqld_home_t, s0)
2da12e
 /usr/bin/mysql_upgrade	--	gen_context(system_u:object_r:mysqld_exec_t,s0)
2da12e
 
2da12e
 /usr/libexec/mysqld	--	gen_context(system_u:object_r:mysqld_exec_t,s0)
2da12e
+/usr/libexec/mysqld_safe-scl-helper --  gen_context(system_u:object_r:mysqld_safe_exec_t,s0)
2da12e
+
2da12e
 
2da12e
 /usr/sbin/mysqld(-max)?	--	gen_context(system_u:object_r:mysqld_exec_t,s0)
2da12e
 /usr/sbin/mysqlmanager	--	gen_context(system_u:object_r:mysqlmanagerd_exec_t,s0)
2da12e
diff --git a/mysql.te b/mysql.te
2da12e
index e14423d..976d57e 100644
2da12e
--- a/mysql.te
2da12e
+++ b/mysql.te
2da12e
@@ -132,7 +132,7 @@ files_search_var_lib(mysqld_t)
2da12e
 files_search_pids(mysqld_t)
2da12e
 files_getattr_all_sockets(mysqld_t)
2da12e
 
2da12e
-auth_use_nsswitch(mysqld_t)
2da12e
+auth_use_pam(mysqld_t)
2da12e
 
2da12e
 logging_send_syslog_msg(mysqld_t)
2da12e
 
6b4b4b
diff --git a/nagios.if b/nagios.if
5b5f49
index cad402c..438eeb3 100644
6b4b4b
--- a/nagios.if
6b4b4b
+++ b/nagios.if
5b5f49
@@ -34,6 +34,26 @@ template(`nagios_plugin_template',`
5b5f49
 
5b5f49
 ########################################
5b5f49
 ## <summary>
5b5f49
+## Execute the nagios unconfined plugins with
5b5f49
+## a domain transition.
5b5f49
+## </summary>
5b5f49
+## <param name="domain">
5b5f49
+## <summary>
5b5f49
+## Domain allowed access.
5b5f49
+## </summary>
5b5f49
+## </param>
5b5f49
+#
5b5f49
+interface(`nagios_domtrans_unconfined_plugins',`
5b5f49
+   gen_require(`
5b5f49
+        type nagios_unconfined_plugin_t;
5b5f49
+        type nagios_unconfined_plugin_exec_t;
5b5f49
+   ')
5b5f49
+
5b5f49
+    domtrans_pattern($1, nagios_unconfined_plugin_exec_t, nagios_unconfined_plugin_t)
5b5f49
+')
5b5f49
+
5b5f49
+########################################
5b5f49
+## <summary>
5b5f49
 ##	Do not audit attempts to read or write nagios
5b5f49
 ##	unnamed pipes.
5b5f49
 ## </summary>
5b5f49
@@ -72,6 +92,25 @@ interface(`nagios_read_config',`
6b4b4b
 	allow $1 nagios_etc_t:file read_file_perms;
6b4b4b
 	files_search_etc($1)
6b4b4b
 ')
6b4b4b
+######################################
6b4b4b
+## <summary>
6b4b4b
+##	Read nagios lib files.
6b4b4b
+## </summary>
6b4b4b
+## <param name="domain">
6b4b4b
+##	<summary>
6b4b4b
+##	Domain allowed access.
6b4b4b
+##	</summary>
6b4b4b
+## </param>
6b4b4b
+#
6b4b4b
+interface(`nagios_read_lib',`
6b4b4b
+	gen_require(`
6b4b4b
+		type nagios_var_lib_t;
6b4b4b
+	')
6b4b4b
+
6b4b4b
+	files_search_var($1)
6b4b4b
+    list_dirs_pattern($1, nagios_var_lib_t, nagios_var_lib_t)
6b4b4b
+	read_files_pattern($1, nagios_var_lib_t, nagios_var_lib_t)
6b4b4b
+')
6b4b4b
 
6b4b4b
 ######################################
6b4b4b
 ## <summary>
6b4b4b
diff --git a/nagios.te b/nagios.te
5b5f49
index 75ed416..e4b8c8a 100644
6b4b4b
--- a/nagios.te
6b4b4b
+++ b/nagios.te
6b4b4b
@@ -5,6 +5,25 @@ policy_module(nagios, 1.13.0)
6b4b4b
 # Declarations
6b4b4b
 #
6b4b4b
 
6b4b4b
+## <desc>
6b4b4b
+## 

6b4b4b
+## Allow nagios/nrpe to call sudo from NRPE utils scripts.
6b4b4b
+## 

6b4b4b
+## </desc>
6b4b4b
+gen_tunable(nagios_run_sudo, false)
6b4b4b
+
6b4b4b
+## <desc>
6b4b4b
+## 

6b4b4b
+## Allow nagios run in conjunction with PNP4Nagios.
6b4b4b
+## 

6b4b4b
+## </desc>
6b4b4b
+gen_tunable(nagios_run_pnp4nagios, false)
6b4b4b
+
6b4b4b
+gen_require(`
6b4b4b
+    class passwd rootok;
6b4b4b
+    class passwd passwd;
6b4b4b
+')
6b4b4b
+
6b4b4b
 attribute nagios_plugin_domain;
6b4b4b
 
6b4b4b
 type nagios_t;
6b4b4b
@@ -124,7 +143,8 @@ files_spool_filetrans(nagios_t, nagios_spool_t, { file fifo_file })
6b4b4b
 
6b4b4b
 manage_files_pattern(nagios_t, nagios_var_lib_t, nagios_var_lib_t)
6b4b4b
 manage_fifo_files_pattern(nagios_t, nagios_var_lib_t, nagios_var_lib_t)
6b4b4b
-files_var_lib_filetrans(nagios_t, nagios_var_lib_t, { file fifo_file })
6b4b4b
+manage_dirs_pattern(nagios_t, nagios_var_lib_t, nagios_var_lib_t)
6b4b4b
+files_var_lib_filetrans(nagios_t, nagios_var_lib_t, { dir file fifo_file })
6b4b4b
 
6b4b4b
 kernel_read_system_state(nagios_t)
6b4b4b
 kernel_read_kernel_sysctls(nagios_t)
6b4b4b
@@ -168,6 +188,35 @@ mta_send_mail(nagios_t)
6b4b4b
 mta_signal_system_mail(nagios_t)
6b4b4b
 mta_kill_system_mail(nagios_t)
6b4b4b
 
6b4b4b
+tunable_policy(`nagios_run_sudo',`
6b4b4b
+    allow nagios_t self:capability { setuid setgid sys_resource sys_ptrace };
6b4b4b
+    allow nagios_t self:process { setrlimit setsched };
6b4b4b
+
6b4b4b
+    allow nagios_t self:key write;
6b4b4b
+
6b4b4b
+    allow nagios_t self:passwd { passwd rootok };
6b4b4b
+
6b4b4b
+    auth_rw_lastlog(nagios_t)
6b4b4b
+    auth_rw_faillog(nagios_t)
6b4b4b
+
6b4b4b
+    auth_domtrans_chkpwd(nagios_t)
6b4b4b
+
6b4b4b
+    selinux_compute_access_vector(nagios_t)
6b4b4b
+
6b4b4b
+    logging_send_audit_msgs(nagios_t)
6b4b4b
+')
6b4b4b
+
6b4b4b
+optional_policy(`
6b4b4b
+    tunable_policy(`nagios_run_sudo',`
6b4b4b
+        sudo_exec(nagios_t)
6b4b4b
+        sudo_manage_db(nagios_t)
6b4b4b
+    ')
6b4b4b
+')
6b4b4b
+
6b4b4b
+tunable_policy(`nagios_run_pnp4nagios',`
6b4b4b
+    allow nagios_t nagios_log_t:file execute;
6b4b4b
+')
6b4b4b
+
6b4b4b
 optional_policy(`
6b4b4b
 	netutils_kill_ping(nagios_t)
6b4b4b
 ')
5b5f49
@@ -222,7 +271,7 @@ optional_policy(`
5b5f49
 # Nrpe local policy
5b5f49
 #
5b5f49
 
5b5f49
-allow nrpe_t self:capability { setuid setgid };
5b5f49
+allow nrpe_t self:capability { setuid setgid kill };
5b5f49
 dontaudit nrpe_t self:capability { sys_tty_config sys_resource };
5b5f49
 allow nrpe_t self:process { setpgid signal_perms setsched setrlimit };
5b5f49
 allow nrpe_t self:fifo_file rw_fifo_file_perms;
6b4b4b
@@ -272,6 +321,32 @@ logging_send_syslog_msg(nrpe_t)
6b4b4b
 
6b4b4b
 userdom_dontaudit_use_unpriv_user_fds(nrpe_t)
6b4b4b
 
6b4b4b
+tunable_policy(`nagios_run_sudo',`
6b4b4b
+    allow nrpe_t self:capability { setuid setgid sys_resource sys_ptrace };
6b4b4b
+    allow nrpe_t self:process { setrlimit setsched };
6b4b4b
+
6b4b4b
+    allow nrpe_t self:key write;
6b4b4b
+
6b4b4b
+    allow nrpe_t self:passwd { passwd rootok };
6b4b4b
+
6b4b4b
+    auth_rw_lastlog(nrpe_t)
6b4b4b
+    auth_rw_faillog(nrpe_t)
6b4b4b
+
6b4b4b
+    auth_domtrans_chkpwd(nrpe_t)
6b4b4b
+
6b4b4b
+    selinux_compute_access_vector(nrpe_t)
6b4b4b
+
6b4b4b
+    logging_send_audit_msgs(nrpe_t)
6b4b4b
+')
6b4b4b
+
6b4b4b
+optional_policy(`
6b4b4b
+    tunable_policy(`nagios_run_sudo',`
6b4b4b
+        sudo_exec(nrpe_t)
6b4b4b
+        sudo_manage_db(nrpe_t)
6b4b4b
+    ')
6b4b4b
+')
6b4b4b
+
6b4b4b
+
6b4b4b
 optional_policy(`
6b4b4b
 	inetd_tcp_service_domain(nrpe_t, nrpe_exec_t)
6b4b4b
 ')
6b4b4b
@@ -434,6 +509,7 @@ kernel_read_kernel_sysctls(nagios_system_plugin_t)
6b4b4b
 
6b4b4b
 corecmd_exec_bin(nagios_system_plugin_t)
6b4b4b
 corecmd_exec_shell(nagios_system_plugin_t)
6b4b4b
+corecmd_getattr_all_executables(nagios_system_plugin_t)
6b4b4b
 
6b4b4b
 dev_read_sysfs(nagios_system_plugin_t)
6b4b4b
 
6b4b4b
diff --git a/passenger.te b/passenger.te
6b4b4b
index 231f2e2..56fba2e 100644
6b4b4b
--- a/passenger.te
6b4b4b
+++ b/passenger.te
6b4b4b
@@ -32,7 +32,7 @@ allow passenger_t self:capability { chown dac_override fsetid fowner kill setuid
6b4b4b
 allow passenger_t self:capability2 block_suspend;
6b4b4b
 allow passenger_t self:process { setpgid setsched getsession signal_perms };
6b4b4b
 allow passenger_t self:fifo_file rw_fifo_file_perms;
6b4b4b
-allow passenger_t self:tcp_socket listen;
6b4b4b
+allow passenger_t self:tcp_socket { accept listen };
6b4b4b
 allow passenger_t self:unix_stream_socket { create_stream_socket_perms connectto };
6b4b4b
 
6b4b4b
 can_exec(passenger_t, passenger_exec_t)
1ccb90
diff --git a/qpid.te b/qpid.te
1ccb90
index fc17eee..9f4739c 100644
1ccb90
--- a/qpid.te
1ccb90
+++ b/qpid.te
1ccb90
@@ -53,6 +53,7 @@ manage_files_pattern(qpidd_t, qpidd_var_run_t,  qpidd_var_run_t)
1ccb90
 files_pid_filetrans(qpidd_t, qpidd_var_run_t, { file dir })
1ccb90
 
1ccb90
 kernel_read_system_state(qpidd_t)
1ccb90
+kernel_read_network_state(qpidd_t)
1ccb90
 
1ccb90
 auth_read_passwd(qpidd_t)
1ccb90
 
6b4b4b
diff --git a/rhcs.if b/rhcs.if
6b4b4b
index bf60580..29df561 100644
6b4b4b
--- a/rhcs.if
6b4b4b
+++ b/rhcs.if
6b4b4b
@@ -864,6 +864,29 @@ interface(`rhcs_systemctl_cluster',`
6b4b4b
     ps_process_pattern($1, cluster_t)
6b4b4b
 ')
6b4b4b
 
6b4b4b
+########################################
6b4b4b
+## <summary>
6b4b4b
+##	Send and receive messages from
6b4b4b
+##	a cluster service over dbus.
6b4b4b
+## </summary>
6b4b4b
+## <param name="domain">
6b4b4b
+##	<summary>
6b4b4b
+##	Domain allowed access.
6b4b4b
+##	</summary>
6b4b4b
+## </param>
6b4b4b
+#
6b4b4b
+interface(`rhcs_dbus_chat_cluster',`
6b4b4b
+	gen_require(`
6b4b4b
+		type cluster_t;
6b4b4b
+		class dbus send_msg;
6b4b4b
+	')
6b4b4b
+
6b4b4b
+	allow $1 cluster_t:dbus send_msg;
6b4b4b
+	allow cluster_t $1:dbus send_msg;
6b4b4b
+')
6b4b4b
+
6b4b4b
+
6b4b4b
+
6b4b4b
 #####################################
6b4b4b
 ## <summary>
6b4b4b
 ##  All of the rules required to administrate
2da12e
diff --git a/rhcs.te b/rhcs.te
2da12e
index 25c0f70..0706417 100644
2da12e
--- a/rhcs.te
2da12e
+++ b/rhcs.te
2da12e
@@ -218,6 +218,8 @@ init_read_script_state(cluster_t)
2da12e
 init_rw_script_tmp_files(cluster_t)
2da12e
 init_manage_script_status_files(cluster_t)
2da12e
 
2da12e
+systemd_dbus_chat_logind(cluster_t)
2da12e
+
2da12e
 userdom_delete_user_tmp_files(cluster_t)
2da12e
 userdom_rw_user_tmp_files(cluster_t)
2da12e
 userdom_kill_all_users(cluster_t)
5b5f49
diff --git a/samba.if b/samba.if
5b5f49
index 59296a2..7662d37 100644
5b5f49
--- a/samba.if
5b5f49
+++ b/samba.if
5b5f49
@@ -622,6 +622,23 @@ interface(`samba_signal_smbd',`
5b5f49
 	allow $1 smbd_t:process signal;
5b5f49
 ')
5b5f49
 
5b5f49
+######################################
5b5f49
+## <summary>
5b5f49
+##	Allow domain to signull samba
5b5f49
+## </summary>
5b5f49
+## <param name="domain">
5b5f49
+##	<summary>
5b5f49
+##	Domain allowed access.
5b5f49
+##	</summary>
5b5f49
+## </param>
5b5f49
+#
5b5f49
+interface(`samba_signull_smbd',`
5b5f49
+	gen_require(`
5b5f49
+		type smbd_t;
5b5f49
+	')
5b5f49
+	allow $1 smbd_t:process signull;
5b5f49
+')
5b5f49
+
5b5f49
 ########################################
5b5f49
 ## <summary>
5b5f49
 ##	Do not audit attempts to use file descriptors from samba.
5b5f49
@@ -758,6 +775,40 @@ interface(`samba_read_winbind_pid',`
5b5f49
 	allow $1 winbind_var_run_t:file read_file_perms;
5b5f49
 ')
5b5f49
 
5b5f49
+######################################
5b5f49
+## <summary>
5b5f49
+##	Allow domain to signull winbind
5b5f49
+## </summary>
5b5f49
+## <param name="domain">
5b5f49
+##	<summary>
5b5f49
+##	Domain allowed access.
5b5f49
+##	</summary>
5b5f49
+## </param>
5b5f49
+#
5b5f49
+interface(`samba_signull_winbind',`
5b5f49
+	gen_require(`
5b5f49
+		type winbind_t;
5b5f49
+	')
5b5f49
+	allow $1 winbind_t:process signull;
5b5f49
+')
5b5f49
+
5b5f49
+######################################
5b5f49
+## <summary>
5b5f49
+##	Allow domain to signull samba_unconfined_net
5b5f49
+## </summary>
5b5f49
+## <param name="domain">
5b5f49
+##	<summary>
5b5f49
+##	Domain allowed access.
5b5f49
+##	</summary>
5b5f49
+## </param>
5b5f49
+#
5b5f49
+interface(`samba_signull_unconfined_net',`
5b5f49
+	gen_require(`
5b5f49
+		type samba_unconfined_net_t;
5b5f49
+	')
5b5f49
+	allow $1 samba_unconfined_net_t:process signull;
5b5f49
+')
5b5f49
+
5b5f49
 ########################################
5b5f49
 ## <summary>
5b5f49
 ##	Connect to winbind.
6b4b4b
diff --git a/samba.te b/samba.te
5b5f49
index 13c975b..9249311 100644
6b4b4b
--- a/samba.te
6b4b4b
+++ b/samba.te
6b4b4b
@@ -80,6 +80,13 @@ gen_tunable(samba_share_nfs, false)
6b4b4b
 ## </desc>
6b4b4b
 gen_tunable(samba_share_fusefs, false)
6b4b4b
 
6b4b4b
+## <desc>
6b4b4b
+## 

6b4b4b
+## Allow smbd to load libgfapi from gluster.
6b4b4b
+## 

6b4b4b
+## </desc>
6b4b4b
+gen_tunable(samba_load_libgfapi, false)
6b4b4b
+
6b4b4b
 type nmbd_t;
6b4b4b
 type nmbd_exec_t;
6b4b4b
 init_daemon_domain(nmbd_t, nmbd_exec_t)
6b4b4b
@@ -237,6 +244,13 @@ userdom_use_inherited_user_terminals(samba_net_t)
6b4b4b
 userdom_list_user_home_dirs(samba_net_t)
6b4b4b
 
6b4b4b
 optional_policy(`
6b4b4b
+	ctdbd_stream_connect(samba_net_t)
6b4b4b
+    ctdbd_manage_var_files(samba_net_t)
6b4b4b
+    ctdbd_manage_lib_dirs(samba_net_t)
6b4b4b
+    ctdbd_manage_lib_files(samba_net_t)
6b4b4b
+')
6b4b4b
+
6b4b4b
+optional_policy(`
6b4b4b
     ldap_stream_connect(samba_net_t)
6b4b4b
     dirsrv_stream_connect(samba_net_t)
6b4b4b
 ')
5b5f49
@@ -260,8 +274,9 @@ optional_policy(`
5b5f49
 # smbd Local policy
5b5f49
 #
5b5f49
 
5b5f49
-allow smbd_t self:capability { chown fowner kill fsetid setgid setuid sys_chroot sys_nice sys_admin sys_resource lease dac_override dac_read_search };
5b5f49
+allow smbd_t self:capability { chown fowner kill fsetid setgid setuid sys_chroot sys_nice sys_admin sys_resource lease dac_override dac_read_search net_admin };
5b5f49
 dontaudit smbd_t self:capability sys_tty_config;
5b5f49
+dontaudit smbd_t self:capability2 block_suspend;
5b5f49
 allow smbd_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimit execmem execstack execheap };
5b5f49
 allow smbd_t self:process setrlimit;
5b5f49
 allow smbd_t self:fd use;
5b5f49
@@ -338,6 +353,7 @@ allow smbd_t winbind_t:process { signal signull };
6b4b4b
 kernel_getattr_core_if(smbd_t)
6b4b4b
 kernel_getattr_message_if(smbd_t)
6b4b4b
 kernel_read_network_state(smbd_t)
6b4b4b
+kernel_read_net_sysctls(smbd_t)
6b4b4b
 kernel_read_fs_sysctls(smbd_t)
6b4b4b
 kernel_read_kernel_sysctls(smbd_t)
6b4b4b
 kernel_read_usermodehelper_state(smbd_t)
5b5f49
@@ -463,14 +479,21 @@ tunable_policy(`samba_share_fusefs',`
6b4b4b
 	fs_search_fusefs(smbd_t)
6b4b4b
 ')
6b4b4b
 
6b4b4b
+tunable_policy(`samba_load_libgfapi',`
6b4b4b
+    corenet_tcp_connect_all_ports(smbd_t)
6b4b4b
+    corenet_tcp_bind_all_ports(smbd_t)
6b4b4b
+    corenet_sendrecv_all_packets(smbd_t)
6b4b4b
+')
6b4b4b
+
6b4b4b
 optional_policy(`
6b4b4b
 	ccs_read_config(smbd_t)
6b4b4b
 ')
6b4b4b
 
6b4b4b
 optional_policy(`
6b4b4b
 	ctdbd_stream_connect(smbd_t)
6b4b4b
-	ctdbd_manage_lib_files(smbd_t)
6b4b4b
     ctdbd_manage_var_files(smbd_t)
6b4b4b
+	ctdbd_manage_lib_files(smbd_t)
6b4b4b
+    ctdbd_manage_lib_dirs(smbd_t)
6b4b4b
 ')
6b4b4b
 
6b4b4b
 optional_policy(`
5b5f49
@@ -488,6 +511,11 @@ optional_policy(`
6b4b4b
 ')
6b4b4b
 
6b4b4b
 optional_policy(`
6b4b4b
+    glusterd_read_conf(smbd_t)
6b4b4b
+    glusterd_rw_lib(smbd_t)
6b4b4b
+')
6b4b4b
+
6b4b4b
+optional_policy(`
6b4b4b
 	kerberos_read_keytab(smbd_t)
6b4b4b
 	kerberos_use(smbd_t)
6b4b4b
 ')
5b5f49
@@ -643,6 +671,7 @@ userdom_dontaudit_search_user_home_dirs(nmbd_t)
6b4b4b
 optional_policy(`
6b4b4b
 	ctdbd_stream_connect(nmbd_t)
6b4b4b
     ctdbd_manage_var_files(nmbd_t)
6b4b4b
+    ctdbd_manage_lib_dirs(nmbd_t)
6b4b4b
     ctdbd_manage_lib_files(nmbd_t)
6b4b4b
 ')
6b4b4b
 
5b5f49
@@ -900,7 +929,7 @@ allow winbind_t self:capability2 block_suspend;
6b4b4b
 dontaudit winbind_t self:capability sys_tty_config;
6b4b4b
 allow winbind_t self:process { signal_perms getsched setsched };
6b4b4b
 allow winbind_t self:fifo_file rw_fifo_file_perms;
6b4b4b
-allow winbind_t self:unix_dgram_socket create_socket_perms;
6b4b4b
+allow winbind_t self:unix_dgram_socket { create_socket_perms sendto };
6b4b4b
 allow winbind_t self:unix_stream_socket create_stream_socket_perms;
6b4b4b
 allow winbind_t self:tcp_socket create_stream_socket_perms;
6b4b4b
 allow winbind_t self:udp_socket create_socket_perms;
5b5f49
@@ -1001,8 +1030,9 @@ userdom_filetrans_home_content(winbind_t)
6b4b4b
 
6b4b4b
 optional_policy(`
6b4b4b
 	ctdbd_stream_connect(winbind_t)
6b4b4b
+    ctdbd_manage_var_files(winbind_t)
6b4b4b
 	ctdbd_manage_lib_files(winbind_t)
6b4b4b
-	ctdbd_manage_var_files(winbind_t)
6b4b4b
+	ctdbd_manage_lib_dirs(winbind_t)
6b4b4b
 ')
6b4b4b
 
6b4b4b
 
2da12e
diff --git a/virt.if b/virt.if
2da12e
index 01641f5..90e8a28 100644
2da12e
--- a/virt.if
2da12e
+++ b/virt.if
2da12e
@@ -357,6 +357,7 @@ interface(`virt_read_pid_files',`
2da12e
 
2da12e
 	files_search_pids($1)
2da12e
 	read_files_pattern($1, virt_var_run_t, virt_var_run_t)
2da12e
+    read_lnk_files_pattern($1, virt_var_run_t, virt_var_run_t)
2da12e
 ')
2da12e
 
2da12e
 ########################################