From d9805455069c8108c72cbe37145c5066cd22547f Mon Sep 17 00:00:00 2001
From: Miroslav Grepl
Date: Tue, 21 Dec 2010 09:32:36 +0000
Subject: [PATCH] - Update to upstream - Fixes for systemd policy - Fixes for
passenger policy - Allow staff users to run mysqld in the staff_t domain,
akonadi needs this - Add bin_t label for
/usr/share/kde4/apps/kajongg/kajongg.py - auth_use_nsswitch does not need
avahi to read passwords,needed for resolving data - Dontaudit (xdm_t) gok
attempting to list contents of /var/account - Telepathy domains need to read
urand - Need interface to getattr all file classes in a mock library for
setroubleshoot
---
policy-F15.patch | 1197 +++++++++++++++++++++++++++++--------------
selinux-policy.spec | 11 +
2 files changed, 834 insertions(+), 374 deletions(-)
diff --git a/policy-F15.patch b/policy-F15.patch
index 8871ef6c..cc260573 100644
--- a/policy-F15.patch
+++ b/policy-F15.patch
@@ -208,6 +208,32 @@ index af90ef2..7534872 100644
+ (( h1 dom h2 ) or ( t1 == mcsnetwrite ));
+
') dnl end enable_mcs
+diff --git a/policy/modules/admin/acct.if b/policy/modules/admin/acct.if
+index e66c296..61f738b 100644
+--- a/policy/modules/admin/acct.if
++++ b/policy/modules/admin/acct.if
+@@ -78,3 +78,21 @@ interface(`acct_manage_data',`
+ manage_files_pattern($1, acct_data_t, acct_data_t)
+ manage_lnk_files_pattern($1, acct_data_t, acct_data_t)
+ ')
++
++########################################
++##
++## Dontaudit Attempts to list acct_data directory
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`acct_dontaudit_list_data',`
++ gen_require(`
++ type acct_data_t;
++ ')
++
++ dontaudit $1 acct_data_t:dir list_dir_perms;
++')
diff --git a/policy/modules/admin/alsa.if b/policy/modules/admin/alsa.if
index 90d5203..1392679 100644
--- a/policy/modules/admin/alsa.if
@@ -1034,9 +1060,18 @@ index c633aea..b773bc3 100644
type portage_cache_t;
files_type(portage_cache_t)
diff --git a/policy/modules/admin/prelink.te b/policy/modules/admin/prelink.te
-index af55369..7d2fcff 100644
+index af55369..bc4ae6d 100644
--- a/policy/modules/admin/prelink.te
+++ b/policy/modules/admin/prelink.te
+@@ -36,7 +36,7 @@ files_type(prelink_var_lib_t)
+ # Local policy
+ #
+
+-allow prelink_t self:capability { chown dac_override fowner fsetid sys_resource };
++allow prelink_t self:capability { chown dac_override fowner fsetid setfcap sys_resource };
+ allow prelink_t self:process { execheap execmem execstack signal };
+ allow prelink_t self:fifo_file rw_fifo_file_perms;
+
@@ -59,10 +59,11 @@ manage_dirs_pattern(prelink_t, prelink_var_lib_t, prelink_var_lib_t)
manage_files_pattern(prelink_t, prelink_var_lib_t, prelink_var_lib_t)
relabel_files_pattern(prelink_t, prelink_var_lib_t, prelink_var_lib_t)
@@ -5074,10 +5109,10 @@ index 0000000..4f9cb05
+')
diff --git a/policy/modules/apps/nsplugin.te b/policy/modules/apps/nsplugin.te
new file mode 100644
-index 0000000..7b483f3
+index 0000000..aedbcbe
--- /dev/null
+++ b/policy/modules/apps/nsplugin.te
-@@ -0,0 +1,314 @@
+@@ -0,0 +1,315 @@
+policy_module(nsplugin, 1.0.0)
+
+########################################
@@ -5187,6 +5222,7 @@ index 0000000..7b483f3
+
+domain_dontaudit_read_all_domains_state(nsplugin_t)
+
++dev_read_urand(nsplugin_t)
+dev_read_rand(nsplugin_t)
+dev_read_sound(nsplugin_t)
+dev_write_sound(nsplugin_t)
@@ -5816,7 +5852,7 @@ index c1d5f50..989f88c 100644
+
+
diff --git a/policy/modules/apps/qemu.te b/policy/modules/apps/qemu.te
-index 5ef2f7d..5a13201 100644
+index 5ef2f7d..d5ed1df 100644
--- a/policy/modules/apps/qemu.te
+++ b/policy/modules/apps/qemu.te
@@ -21,7 +21,7 @@ gen_tunable(qemu_use_cifs, true)
@@ -5828,7 +5864,15 @@ index 5ef2f7d..5a13201 100644
##
##
gen_tunable(qemu_use_comm, false)
-@@ -90,7 +90,9 @@ tunable_policy(`qemu_use_usb',`
+@@ -55,6 +55,7 @@ storage_raw_read_removable_device(qemu_t)
+
+ userdom_search_user_home_content(qemu_t)
+ userdom_read_user_tmpfs_files(qemu_t)
++userdom_stream_connect(qemu_t)
+
+ tunable_policy(`qemu_full_network',`
+ allow qemu_t self:udp_socket create_socket_perms;
+@@ -90,7 +91,9 @@ tunable_policy(`qemu_use_usb',`
')
optional_policy(`
@@ -5839,7 +5883,7 @@ index 5ef2f7d..5a13201 100644
')
optional_policy(`
-@@ -102,6 +104,10 @@ optional_policy(`
+@@ -102,6 +105,10 @@ optional_policy(`
xen_rw_image_files(qemu_t)
')
@@ -5850,7 +5894,7 @@ index 5ef2f7d..5a13201 100644
########################################
#
# Unconfined qemu local policy
-@@ -112,6 +118,8 @@ optional_policy(`
+@@ -112,6 +119,8 @@ optional_policy(`
typealias unconfined_qemu_t alias qemu_unconfined_t;
application_type(unconfined_qemu_t)
unconfined_domain(unconfined_qemu_t)
@@ -7104,10 +7148,10 @@ index 0000000..46368cc
+')
diff --git a/policy/modules/apps/telepathy.te b/policy/modules/apps/telepathy.te
new file mode 100644
-index 0000000..7d62b71
+index 0000000..2ace399
--- /dev/null
+++ b/policy/modules/apps/telepathy.te
-@@ -0,0 +1,333 @@
+@@ -0,0 +1,328 @@
+
+policy_module(telepathy, 1.0.0)
+
@@ -7180,8 +7224,6 @@ index 0000000..7d62b71
+corecmd_exec_shell(telepathy_msn_t)
+corecmd_read_bin_symlinks(telepathy_msn_t)
+
-+dev_read_urand(telepathy_msn_t)
-+
+files_read_etc_files(telepathy_msn_t)
+files_read_usr_files(telepathy_msn_t)
+
@@ -7239,7 +7281,6 @@ index 0000000..7d62b71
+corenet_tcp_connect_vnc_port(telepathy_gabble_t)
+
+dev_read_rand(telepathy_gabble_t)
-+dev_read_urand(telepathy_gabble_t)
+
+files_read_config_files(telepathy_gabble_t)
+files_read_usr_files(telepathy_gabble_t)
@@ -7276,6 +7317,8 @@ index 0000000..7d62b71
+corenet_sendrecv_ircd_client_packets(telepathy_idle_t)
+corenet_tcp_connect_ircd_port(telepathy_idle_t)
+
++dev_read_rand(telepathy_idle_t)
++
+files_read_etc_files(telepathy_idle_t)
+
+sysnet_read_config(telepathy_idle_t)
@@ -7334,8 +7377,6 @@ index 0000000..7d62b71
+corenet_tcp_bind_presence_port(telepathy_salut_t)
+corenet_tcp_connect_presence_port(telepathy_salut_t)
+
-+dev_read_urand(telepathy_salut_t)
-+
+files_read_etc_files(telepathy_salut_t)
+
+sysnet_read_config(telepathy_salut_t)
@@ -7360,8 +7401,6 @@ index 0000000..7d62b71
+corenet_sendrecv_sip_client_packets(telepathy_sofiasip_t)
+corenet_tcp_connect_sip_port(telepathy_sofiasip_t)
+
-+dev_read_urand(telepathy_sofiasip_t)
-+
+kernel_request_load_module(telepathy_sofiasip_t)
+
+sysnet_read_config(telepathy_sofiasip_t)
@@ -7381,8 +7420,6 @@ index 0000000..7d62b71
+
+corecmd_exec_bin(telepathy_sunshine_t)
+
-+dev_read_urand(telepathy_sunshine_t)
-+
+files_read_etc_files(telepathy_sunshine_t)
+files_read_usr_files(telepathy_sunshine_t)
+
@@ -7411,6 +7448,8 @@ index 0000000..7d62b71
+corenet_tcp_sendrecv_generic_node(telepathy_domain)
+corenet_udp_bind_generic_node(telepathy_domain)
+
++dev_read_urand(telepathy_domain)
++
+kernel_read_system_state(telepathy_domain)
+
+fs_search_auto_mountpoints(telepathy_domain)
@@ -7807,7 +7846,7 @@ index 82842a0..4111a1d 100644
dbus_system_bus_client($1_wm_t)
dbus_session_bus_client($1_wm_t)
diff --git a/policy/modules/kernel/corecommands.fc b/policy/modules/kernel/corecommands.fc
-index 34c9d01..6e68bd2 100644
+index 34c9d01..93e0ee8 100644
--- a/policy/modules/kernel/corecommands.fc
+++ b/policy/modules/kernel/corecommands.fc
@@ -72,7 +72,9 @@ ifdef(`distro_redhat',`
@@ -7848,6 +7887,14 @@ index 34c9d01..6e68bd2 100644
/usr/lib/vmware-tools/(s)?bin32(/.*)? gen_context(system_u:object_r:bin_t,s0)
/usr/lib/vmware-tools/(s)?bin64(/.*)? gen_context(system_u:object_r:bin_t,s0)
/usr/share/authconfig/authconfig-gtk\.py -- gen_context(system_u:object_r:bin_t,s0)
+@@ -319,6 +324,7 @@ ifdef(`distro_redhat', `
+ /usr/share/fedora-usermgmt/wrapper -- gen_context(system_u:object_r:bin_t,s0)
+ /usr/share/hplip/[^/]* -- gen_context(system_u:object_r:bin_t,s0)
+ /usr/share/hwbrowser/hwbrowser -- gen_context(system_u:object_r:bin_t,s0)
++/usr/share/kde4/apps/kajongg/kajongg.py -- gen_context(system_u:object_r:bin_t,s0)
+ /usr/share/pwlib/make/ptlib-config -- gen_context(system_u:object_r:bin_t,s0)
+ /usr/share/pydict/pydict\.py -- gen_context(system_u:object_r:bin_t,s0)
+ /usr/share/rhn/rhn_applet/applet\.py -- gen_context(system_u:object_r:bin_t,s0)
diff --git a/policy/modules/kernel/corecommands.if b/policy/modules/kernel/corecommands.if
index 9e9263a..24018ce 100644
--- a/policy/modules/kernel/corecommands.if
@@ -8913,7 +8960,7 @@ index 3517db2..4dd4bef 100644
+
+/usr/lib/debug <>
diff --git a/policy/modules/kernel/files.if b/policy/modules/kernel/files.if
-index ed203b2..bfb7926 100644
+index ed203b2..7825dd2 100644
--- a/policy/modules/kernel/files.if
+++ b/policy/modules/kernel/files.if
@@ -1053,10 +1053,8 @@ interface(`files_relabel_all_files',`
@@ -9066,7 +9113,39 @@ index ed203b2..bfb7926 100644
## Execute generic files in /etc.
##
##
-@@ -2623,6 +2730,24 @@ interface(`files_read_etc_runtime_files',`
+@@ -2583,6 +2690,31 @@ interface(`files_create_boot_flag',`
+
+ ########################################
+ ##
++## Delete a boot flag.
++##
++##
++##
++## Delete a boot flag, such as
++## /.autorelabel and /.autofsck.
++##
++##
++##
++##
++## Domain allowed access.
++##
++##
++##
++#
++interface(`files_delete_boot_flag',`
++ gen_require(`
++ type root_t, etc_runtime_t;
++ ')
++
++ delete_files_pattern($1, root_t, etc_runtime_t)
++')
++
++########################################
++##
+ ## Read files in /etc that are dynamically
+ ## created on boot, such as mtab.
+ ##
+@@ -2623,6 +2755,24 @@ interface(`files_read_etc_runtime_files',`
########################################
##
@@ -9091,7 +9170,7 @@ index ed203b2..bfb7926 100644
## Do not audit attempts to read files
## in /etc that are dynamically
## created on boot, such as mtab.
-@@ -3104,6 +3229,7 @@ interface(`files_getattr_home_dir',`
+@@ -3104,6 +3254,7 @@ interface(`files_getattr_home_dir',`
')
allow $1 home_root_t:dir getattr;
@@ -9099,7 +9178,7 @@ index ed203b2..bfb7926 100644
')
########################################
-@@ -3124,6 +3250,7 @@ interface(`files_dontaudit_getattr_home_dir',`
+@@ -3124,6 +3275,7 @@ interface(`files_dontaudit_getattr_home_dir',`
')
dontaudit $1 home_root_t:dir getattr;
@@ -9107,7 +9186,7 @@ index ed203b2..bfb7926 100644
')
########################################
-@@ -3365,6 +3492,24 @@ interface(`files_list_mnt',`
+@@ -3365,6 +3517,24 @@ interface(`files_list_mnt',`
allow $1 mnt_t:dir list_dir_perms;
')
@@ -9132,7 +9211,7 @@ index ed203b2..bfb7926 100644
########################################
##
## Mount a filesystem on /mnt.
-@@ -3438,6 +3583,24 @@ interface(`files_read_mnt_files',`
+@@ -3438,6 +3608,24 @@ interface(`files_read_mnt_files',`
read_files_pattern($1, mnt_t, mnt_t)
')
@@ -9157,7 +9236,7 @@ index ed203b2..bfb7926 100644
########################################
##
## Create, read, write, and delete symbolic links in /mnt.
-@@ -3729,6 +3892,100 @@ interface(`files_read_world_readable_sockets',`
+@@ -3729,6 +3917,100 @@ interface(`files_read_world_readable_sockets',`
allow $1 readable_t:sock_file read_sock_file_perms;
')
@@ -9258,7 +9337,7 @@ index ed203b2..bfb7926 100644
########################################
##
## Allow the specified type to associate
-@@ -3914,6 +4171,32 @@ interface(`files_manage_generic_tmp_dirs',`
+@@ -3914,6 +4196,32 @@ interface(`files_manage_generic_tmp_dirs',`
########################################
##
@@ -9291,92 +9370,262 @@ index ed203b2..bfb7926 100644
## Manage temporary files and directories in /tmp.
##
##
-@@ -3968,6 +4251,84 @@ interface(`files_rw_generic_tmp_sockets',`
+@@ -3968,7 +4276,7 @@ interface(`files_rw_generic_tmp_sockets',`
########################################
##
+-## Set the attributes of all tmp directories.
+## Relabel a dir from the type used in /tmp.
-+##
-+##
-+##
-+## Domain allowed access.
-+##
-+##
-+#
-+interface(`files_relabelfrom_tmp_dirs',`
-+ gen_require(`
-+ type tmp_t;
-+ ')
-+
-+ relabelfrom_dirs_pattern($1, tmp_t, tmp_t)
-+')
-+
-+########################################
-+##
-+## Relabel a file from the type used in /tmp.
-+##
-+##
-+##
-+## Domain allowed access.
-+##
-+##
-+#
-+interface(`files_relabelfrom_tmp_files',`
-+ gen_require(`
-+ type tmp_t;
-+ ')
-+
-+ relabelfrom_files_pattern($1, tmp_t, tmp_t)
-+')
-+
-+########################################
-+##
-+## Relabel all tmp dirs.
-+##
-+##
-+##
-+## Domain allowed access.
-+##
-+##
-+##
-+#
-+interface(`files_relabel_all_tmp_dirs',`
-+ gen_require(`
-+ attribute tmpfile;
-+ type var_t;
-+ ')
-+
-+ allow $1 var_t:dir search_dir_perms;
-+ relabel_dirs_pattern($1, tmpfile, tmpfile)
-+')
-+
-+########################################
-+##
-+## Relabel all tmp files.
-+##
-+##
-+##
-+## Domain allowed access.
-+##
-+##
-+##
-+#
-+interface(`files_relabel_all_tmp_files',`
-+ gen_require(`
-+ attribute tmpfile;
-+ type var_t;
-+ ')
-+
-+ allow $1 var_t:dir search_dir_perms;
-+ relabel_files_pattern($1, tmpfile, tmpfile)
-+')
-+
-+########################################
-+##
- ## Set the attributes of all tmp directories.
##
##
-@@ -4127,6 +4488,13 @@ interface(`files_purge_tmp',`
+ ##
+@@ -3976,17 +4284,17 @@ interface(`files_rw_generic_tmp_sockets',`
+ ##
+ ##
+ #
+-interface(`files_setattr_all_tmp_dirs',`
++interface(`files_relabelfrom_tmp_dirs',`
+ gen_require(`
+- attribute tmpfile;
++ type tmp_t;
+ ')
+
+- allow $1 tmpfile:dir { search_dir_perms setattr };
++ relabelfrom_dirs_pattern($1, tmp_t, tmp_t)
+ ')
+
+ ########################################
+ ##
+-## List all tmp directories.
++## Relabel a file from the type used in /tmp.
+ ##
+ ##
+ ##
+@@ -3994,74 +4302,77 @@ interface(`files_setattr_all_tmp_dirs',`
+ ##
+ ##
+ #
+-interface(`files_list_all_tmp',`
++interface(`files_relabelfrom_tmp_files',`
+ gen_require(`
+- attribute tmpfile;
++ type tmp_t;
+ ')
+
+- allow $1 tmpfile:dir list_dir_perms;
++ relabelfrom_files_pattern($1, tmp_t, tmp_t)
+ ')
+
+ ########################################
+ ##
+-## Do not audit attempts to get the attributes
+-## of all tmp files.
++## Relabel all tmp dirs.
+ ##
+ ##
+ ##
+-## Domain not to audit.
++## Domain allowed access.
+ ##
+ ##
++##
+ #
+-interface(`files_dontaudit_getattr_all_tmp_files',`
++interface(`files_relabel_all_tmp_dirs',`
+ gen_require(`
+ attribute tmpfile;
++ type var_t;
+ ')
+
+- dontaudit $1 tmpfile:file getattr;
++ allow $1 var_t:dir search_dir_perms;
++ relabel_dirs_pattern($1, tmpfile, tmpfile)
+ ')
+
+ ########################################
+ ##
+-## Allow attempts to get the attributes
+-## of all tmp files.
++## Relabel all tmp files.
+ ##
+ ##
+ ##
+ ## Domain allowed access.
+ ##
+ ##
++##
+ #
+-interface(`files_getattr_all_tmp_files',`
++interface(`files_relabel_all_tmp_files',`
+ gen_require(`
+ attribute tmpfile;
++ type var_t;
+ ')
+
+- allow $1 tmpfile:file getattr;
++ allow $1 var_t:dir search_dir_perms;
++ relabel_files_pattern($1, tmpfile, tmpfile)
+ ')
+
+ ########################################
+ ##
+-## Do not audit attempts to get the attributes
+-## of all tmp sock_file.
++## Set the attributes of all tmp directories.
+ ##
+ ##
+ ##
+-## Domain not to audit.
++## Domain allowed access.
+ ##
+ ##
+ #
+-interface(`files_dontaudit_getattr_all_tmp_sockets',`
++interface(`files_setattr_all_tmp_dirs',`
+ gen_require(`
+ attribute tmpfile;
+ ')
+
+- dontaudit $1 tmpfile:sock_file getattr;
++ allow $1 tmpfile:dir { search_dir_perms setattr };
+ ')
+
+ ########################################
+ ##
+-## Read all tmp files.
++## List all tmp directories.
+ ##
+ ##
+ ##
+@@ -4069,36 +4380,111 @@ interface(`files_dontaudit_getattr_all_tmp_sockets',`
+ ##
+ ##
+ #
+-interface(`files_read_all_tmp_files',`
++interface(`files_list_all_tmp',`
+ gen_require(`
+ attribute tmpfile;
+ ')
+
+- read_files_pattern($1, tmpfile, tmpfile)
++ allow $1 tmpfile:dir list_dir_perms;
+ ')
+
+ ########################################
+ ##
+-## Create an object in the tmp directories, with a private
+-## type using a type transition.
++## Do not audit attempts to get the attributes
++## of all tmp files.
+ ##
+ ##
+ ##
+-## Domain allowed access.
+-##
+-##
+-##
+-##
+-## The type of the object to be created.
+-##
+-##
+-##
+-##
+-## The object class of the object being created.
++## Domain not to audit.
+ ##
+ ##
+ #
+-interface(`files_tmp_filetrans',`
++interface(`files_dontaudit_getattr_all_tmp_files',`
++ gen_require(`
++ attribute tmpfile;
++ ')
++
++ dontaudit $1 tmpfile:file getattr;
++')
++
++########################################
++##
++## Allow attempts to get the attributes
++## of all tmp files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`files_getattr_all_tmp_files',`
++ gen_require(`
++ attribute tmpfile;
++ ')
++
++ allow $1 tmpfile:file getattr;
++')
++
++########################################
++##
++## Do not audit attempts to get the attributes
++## of all tmp sock_file.
++##
++##
++##
++## Domain not to audit.
++##
++##
++#
++interface(`files_dontaudit_getattr_all_tmp_sockets',`
++ gen_require(`
++ attribute tmpfile;
++ ')
++
++ dontaudit $1 tmpfile:sock_file getattr;
++')
++
++########################################
++##
++## Read all tmp files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`files_read_all_tmp_files',`
++ gen_require(`
++ attribute tmpfile;
++ ')
++
++ read_files_pattern($1, tmpfile, tmpfile)
++')
++
++########################################
++##
++## Create an object in the tmp directories, with a private
++## type using a type transition.
++##
++##
++##
++## Domain allowed access.
++##
++##
++##
++##
++## The type of the object to be created.
++##
++##
++##
++##
++## The object class of the object being created.
++##
++##
++#
++interface(`files_tmp_filetrans',`
+ gen_require(`
+ type tmp_t;
+ ')
+@@ -4127,6 +4513,13 @@ interface(`files_purge_tmp',`
delete_lnk_files_pattern($1, tmpfile, tmpfile)
delete_fifo_files_pattern($1, tmpfile, tmpfile)
delete_sock_files_pattern($1, tmpfile, tmpfile)
@@ -9390,79 +9639,32 @@ index ed203b2..bfb7926 100644
')
########################################
-@@ -4736,7 +5104,7 @@ interface(`files_read_var_files',`
+@@ -4736,6 +5129,24 @@ interface(`files_read_var_files',`
########################################
##
--## Read and write files in the /var directory.
+## Append files in the /var directory.
- ##
- ##
- ##
-@@ -4744,36 +5112,54 @@ interface(`files_read_var_files',`
- ##
- ##
- #
--interface(`files_rw_var_files',`
-+interface(`files_append_var_files',`
- gen_require(`
- type var_t;
- ')
-
-- rw_files_pattern($1, var_t, var_t)
-+ append_files_pattern($1, var_t, var_t)
- ')
-
- ########################################
- ##
--## Do not audit attempts to read and write
--## files in the /var directory.
-+## Read and write files in the /var directory.
- ##
- ##
- ##
--## Domain to not audit.
-+## Domain allowed access.
- ##
- ##
- #
--interface(`files_dontaudit_rw_var_files',`
-+interface(`files_rw_var_files',`
- gen_require(`
- type var_t;
- ')
-
-- dontaudit $1 var_t:file rw_file_perms;
-+ rw_files_pattern($1, var_t, var_t)
- ')
-
- ########################################
- ##
--## Create, read, write, and delete files in the /var directory.
-+## Do not audit attempts to read and write
-+## files in the /var directory.
+##
+##
+##
-+## Domain to not audit.
++## Domain allowed access.
+##
+##
+#
-+interface(`files_dontaudit_rw_var_files',`
++interface(`files_append_var_files',`
+ gen_require(`
+ type var_t;
+ ')
+
-+ dontaudit $1 var_t:file rw_file_perms;
++ append_files_pattern($1, var_t, var_t)
+')
+
+########################################
+##
-+## Create, read, write, and delete files in the /var directory.
+ ## Read and write files in the /var directory.
##
##
- ##
-@@ -5071,6 +5457,24 @@ interface(`files_manage_mounttab',`
+@@ -5071,6 +5482,24 @@ interface(`files_manage_mounttab',`
########################################
##
@@ -9487,7 +9689,7 @@ index ed203b2..bfb7926 100644
## Search the locks directory (/var/lock).
##
##
-@@ -5156,12 +5560,12 @@ interface(`files_getattr_generic_locks',`
+@@ -5156,12 +5585,12 @@ interface(`files_getattr_generic_locks',`
##
#
interface(`files_delete_generic_locks',`
@@ -9504,7 +9706,7 @@ index ed203b2..bfb7926 100644
')
########################################
-@@ -5207,6 +5611,27 @@ interface(`files_delete_all_locks',`
+@@ -5207,6 +5636,27 @@ interface(`files_delete_all_locks',`
########################################
##
@@ -9532,7 +9734,7 @@ index ed203b2..bfb7926 100644
## Read all lock files.
##
##
-@@ -5335,6 +5760,43 @@ interface(`files_search_pids',`
+@@ -5335,6 +5785,43 @@ interface(`files_search_pids',`
search_dirs_pattern($1, var_t, var_run_t)
')
@@ -9576,7 +9778,7 @@ index ed203b2..bfb7926 100644
########################################
##
## Do not audit attempts to search
-@@ -5542,6 +6004,62 @@ interface(`files_dontaudit_ioctl_all_pids',`
+@@ -5542,6 +6029,62 @@ interface(`files_dontaudit_ioctl_all_pids',`
########################################
##
@@ -9639,7 +9841,7 @@ index ed203b2..bfb7926 100644
## Read all process ID files.
##
##
-@@ -5559,6 +6077,44 @@ interface(`files_read_all_pids',`
+@@ -5559,6 +6102,44 @@ interface(`files_read_all_pids',`
list_dirs_pattern($1, var_t, pidfile)
read_files_pattern($1, pidfile, pidfile)
@@ -9684,7 +9886,7 @@ index ed203b2..bfb7926 100644
')
########################################
-@@ -5844,3 +6400,247 @@ interface(`files_unconfined',`
+@@ -5844,3 +6425,247 @@ interface(`files_unconfined',`
typeattribute $1 files_unconfined_type;
')
@@ -11232,7 +11434,7 @@ index be4de58..cce681a 100644
########################################
#
diff --git a/policy/modules/roles/staff.te b/policy/modules/roles/staff.te
-index 2be17d2..96d3fbf 100644
+index 2be17d2..faaf889 100644
--- a/policy/modules/roles/staff.te
+++ b/policy/modules/roles/staff.te
@@ -8,12 +8,48 @@ policy_module(staff, 2.2.0)
@@ -11284,7 +11486,7 @@ index 2be17d2..96d3fbf 100644
optional_policy(`
apache_role(staff_r, staff_t)
')
-@@ -27,25 +63,104 @@ optional_policy(`
+@@ -27,25 +63,108 @@ optional_policy(`
')
optional_policy(`
@@ -11321,6 +11523,10 @@ index 2be17d2..96d3fbf 100644
+ oident_relabel_user_content(staff_t)
+')
+
++optional_policy(`
++ mysql_exec(staff_t)
++')
++
+optional_policy(`
postgresql_role(staff_r, staff_t)
')
@@ -11391,7 +11597,7 @@ index 2be17d2..96d3fbf 100644
optional_policy(`
vlock_run(staff_t, staff_r)
-@@ -137,10 +252,6 @@ ifndef(`distro_redhat',`
+@@ -137,10 +256,6 @@ ifndef(`distro_redhat',`
')
optional_policy(`
@@ -19529,7 +19735,7 @@ index 9d44538..7e9057e 100644
#
interface(`cyphesis_domtrans',`
diff --git a/policy/modules/services/cyrus.te b/policy/modules/services/cyrus.te
-index e182bf4..f80e725 100644
+index e182bf4..aab657c 100644
--- a/policy/modules/services/cyrus.te
+++ b/policy/modules/services/cyrus.te
@@ -26,7 +26,7 @@ files_pid_file(cyrus_var_run_t)
@@ -19541,7 +19747,18 @@ index e182bf4..f80e725 100644
dontaudit cyrus_t self:capability sys_tty_config;
allow cyrus_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimit execmem execstack execheap };
allow cyrus_t self:process setrlimit;
-@@ -135,6 +135,7 @@ optional_policy(`
+@@ -119,6 +119,10 @@ optional_policy(`
+ ')
+
+ optional_policy(`
++ dirsrv_stream_connect(cyrus_t)
++')
++
++optional_policy(`
+ kerberos_keytab_template(cyrus, cyrus_t)
+ ')
+
+@@ -135,6 +139,7 @@ optional_policy(`
')
optional_policy(`
@@ -20614,10 +20831,10 @@ index 0000000..0070a0d
+/var/log/dirsrv/ldap-agent.log gen_context(system_u:object_r:dirsrv_snmp_var_log_t,s0)
diff --git a/policy/modules/services/dirsrv.if b/policy/modules/services/dirsrv.if
new file mode 100644
-index 0000000..440a6c5
+index 0000000..9d8f5de
--- /dev/null
+++ b/policy/modules/services/dirsrv.if
-@@ -0,0 +1,193 @@
+@@ -0,0 +1,212 @@
+## policy for dirsrv
+
+########################################
@@ -20718,6 +20935,25 @@ index 0000000..440a6c5
+ allow $1 dirsrv_var_lib_t:file manage_file_perms;
+')
+
++########################################
++##
++## Connect to dirsrv over an unix stream socket.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`dirsrv_stream_connect',`
++ gen_require(`
++ type dirsrv_t, dirsrv_var_run_t;
++ ')
++
++ files_search_pids($1)
++ stream_connect_pattern($1, dirsrv_var_run_t, dirsrv_var_run_t, dirsrv_t)
++')
++
+#######################################
+##
+## Allow a domain to manage dirsrv /var/run files.
@@ -21013,6 +21249,16 @@ index 03b5286..fcafa0b 100644
ucspitcp_service_domain(djbdns_axfrdns_t, djbdns_axfrdns_exec_t)
########################################
+diff --git a/policy/modules/services/dkim.fc b/policy/modules/services/dkim.fc
+index dc1056c..bd60100 100644
+--- a/policy/modules/services/dkim.fc
++++ b/policy/modules/services/dkim.fc
+@@ -7,3 +7,5 @@
+ /var/run/dkim-filter(/.*)? gen_context(system_u:object_r:dkim_milter_data_t,s0)
+ /var/run/dkim-milter(/.*)? gen_context(system_u:object_r:dkim_milter_data_t,s0)
+ /var/run/dkim-milter\.pid -- gen_context(system_u:object_r:dkim_milter_data_t,s0)
++
++/var/lib/dkim-milter(/.*)? gen_context(system_u:object_r:dkim_milter_data_t,s0)
diff --git a/policy/modules/services/dnsmasq.fc b/policy/modules/services/dnsmasq.fc
index b886676..ad3210e 100644
--- a/policy/modules/services/dnsmasq.fc
@@ -21077,7 +21323,7 @@ index 9bd812b..c808b31 100644
')
diff --git a/policy/modules/services/dnsmasq.te b/policy/modules/services/dnsmasq.te
-index fdaeeba..c516b94 100644
+index fdaeeba..dc4eb3d 100644
--- a/policy/modules/services/dnsmasq.te
+++ b/policy/modules/services/dnsmasq.te
@@ -48,8 +48,9 @@ files_var_lib_filetrans(dnsmasq_t, dnsmasq_lease_t, file)
@@ -21091,7 +21337,16 @@ index fdaeeba..c516b94 100644
kernel_read_kernel_sysctls(dnsmasq_t)
kernel_read_system_state(dnsmasq_t)
-@@ -96,10 +97,18 @@ optional_policy(`
+@@ -88,6 +89,8 @@ logging_send_syslog_msg(dnsmasq_t)
+
+ miscfiles_read_localization(dnsmasq_t)
+
++sysnet_dns_name_resolve(dnsmasq_t)
++
+ userdom_dontaudit_use_unpriv_user_fds(dnsmasq_t)
+ userdom_dontaudit_search_user_home_dirs(dnsmasq_t)
+
+@@ -96,10 +99,18 @@ optional_policy(`
')
optional_policy(`
@@ -21110,7 +21365,7 @@ index fdaeeba..c516b94 100644
seutil_sigchld_newrole(dnsmasq_t)
')
-@@ -114,4 +123,5 @@ optional_policy(`
+@@ -114,4 +125,5 @@ optional_policy(`
optional_policy(`
virt_manage_lib_files(dnsmasq_t)
virt_read_pid_files(dnsmasq_t)
@@ -24168,7 +24423,7 @@ index c62f23e..335fda1 100644
/var/run/slapd\.pid -- gen_context(system_u:object_r:slapd_var_run_t,s0)
+/var/run/slapd.* -s gen_context(system_u:object_r:slapd_var_run_t,s0)
diff --git a/policy/modules/services/ldap.if b/policy/modules/services/ldap.if
-index 3aa8fa7..c51c1f6 100644
+index 3aa8fa7..8fa74c3 100644
--- a/policy/modules/services/ldap.if
+++ b/policy/modules/services/ldap.if
@@ -1,5 +1,41 @@
@@ -24239,40 +24494,17 @@ index 3aa8fa7..c51c1f6 100644
## Read the OpenLDAP configuration files.
##
##
-@@ -69,8 +124,30 @@ interface(`ldap_stream_connect',`
+@@ -69,8 +124,7 @@ interface(`ldap_stream_connect',`
')
files_search_pids($1)
- allow $1 slapd_var_run_t:sock_file write;
- allow $1 slapd_t:unix_stream_socket connectto;
+ stream_connect_pattern($1, slapd_var_run_t, slapd_var_run_t, slapd_t)
-+
-+ optional_policy(`
-+ ldap_stream_connect_dirsrv($1)
-+ ')
-+')
-+
-+########################################
-+##
-+## Connect to dirsrv over an unix stream socket.
-+##
-+##
-+##
-+## Domain allowed access.
-+##
-+##
-+#
-+interface(`ldap_stream_connect_dirsrv',`
-+ gen_require(`
-+ type dirsrv_t, dirsrv_var_run_t;
-+ ')
-+
-+ files_search_pids($1)
-+ stream_connect_pattern($1, dirsrv_var_run_t, dirsrv_var_run_t, dirsrv_t)
')
########################################
-@@ -110,6 +187,7 @@ interface(`ldap_admin',`
+@@ -110,6 +164,7 @@ interface(`ldap_admin',`
admin_pattern($1, slapd_lock_t)
@@ -24624,17 +24856,18 @@ index db4fd6f..5008a6c 100644
admin_pattern($1, memcached_var_run_t)
')
diff --git a/policy/modules/services/milter.fc b/policy/modules/services/milter.fc
-index 55a3e2f..613c69d 100644
+index 55a3e2f..bc489e0 100644
--- a/policy/modules/services/milter.fc
+++ b/policy/modules/services/milter.fc
-@@ -1,3 +1,6 @@
+@@ -1,10 +1,15 @@
+/etc/mail/dkim-milter/keys(/.*)? gen_context(system_u:object_r:dkim_milter_private_key_t,s0)
+
+/usr/sbin/dkim-filter -- gen_context(system_u:object_r:dkim_milter_exec_t,s0)
/usr/sbin/milter-greylist -- gen_context(system_u:object_r:greylist_milter_exec_t,s0)
/usr/sbin/milter-regex -- gen_context(system_u:object_r:regex_milter_exec_t,s0)
/usr/sbin/spamass-milter -- gen_context(system_u:object_r:spamass_milter_exec_t,s0)
-@@ -5,6 +8,7 @@
+
++/var/lib/dkim-milter(/.*)? gen_context(system_u:object_r:dkim_milter_data_t,s0)
/var/lib/milter-greylist(/.*)? gen_context(system_u:object_r:greylist_milter_data_t,s0)
/var/lib/spamass-milter(/.*)? gen_context(system_u:object_r:spamass_milter_state_t,s0)
@@ -24812,10 +25045,10 @@ index 0000000..42bb2a3
+/var/cache/mock(/.*)? gen_context(system_u:object_r:mock_cache_t,s0)
diff --git a/policy/modules/services/mock.if b/policy/modules/services/mock.if
new file mode 100644
-index 0000000..d76fb11
+index 0000000..6395ec8
--- /dev/null
+++ b/policy/modules/services/mock.if
-@@ -0,0 +1,236 @@
+@@ -0,0 +1,254 @@
+## policy for mock
+
+########################################
@@ -24876,6 +25109,24 @@ index 0000000..d76fb11
+
+########################################
+##
++## Getattr on mock lib file,dir,sock_file ...
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`mock_getattr_lib',`
++ gen_require(`
++ type mock_var_lib_t;
++ ')
++
++ allow $1 mock_var_lib_t:dir_file_class_set getattr;
++')
++
++########################################
++##
+## Create, read, write, and delete
+## mock lib files.
+##
@@ -26497,10 +26748,35 @@ index f17583b..8f01394 100644
+
+miscfiles_read_localization(munin_plugin_domain)
diff --git a/policy/modules/services/mysql.if b/policy/modules/services/mysql.if
-index e9c0982..4d3b208 100644
+index e9c0982..06034b8 100644
--- a/policy/modules/services/mysql.if
+++ b/policy/modules/services/mysql.if
-@@ -73,6 +73,7 @@ interface(`mysql_stream_connect',`
+@@ -18,6 +18,24 @@ interface(`mysql_domtrans',`
+ domtrans_pattern($1, mysqld_exec_t, mysqld_t)
+ ')
+
++######################################
++##
++## Execute MySQL in the coller domain.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`mysql_exec',`
++ gen_require(`
++ type mysqld_exec_t;
++ ')
++
++ can_exec($1, mysqld_exec_t)
++')
++
+ ########################################
+ ##
+ ## Send a generic signal to MySQL.
+@@ -73,6 +91,7 @@ interface(`mysql_stream_connect',`
type mysqld_t, mysqld_var_run_t, mysqld_db_t;
')
@@ -26508,7 +26784,7 @@ index e9c0982..4d3b208 100644
stream_connect_pattern($1, mysqld_var_run_t, mysqld_var_run_t, mysqld_t)
stream_connect_pattern($1, mysqld_db_t, mysqld_var_run_t, mysqld_t)
')
-@@ -252,7 +253,7 @@ interface(`mysql_write_log',`
+@@ -252,7 +271,7 @@ interface(`mysql_write_log',`
')
logging_search_logs($1)
@@ -26517,7 +26793,7 @@ index e9c0982..4d3b208 100644
')
######################################
-@@ -329,10 +330,9 @@ interface(`mysql_search_pid_files',`
+@@ -329,10 +348,9 @@ interface(`mysql_search_pid_files',`
#
interface(`mysql_admin',`
gen_require(`
@@ -26531,7 +26807,7 @@ index e9c0982..4d3b208 100644
')
allow $1 mysqld_t:process { ptrace signal_perms };
-@@ -343,13 +343,17 @@ interface(`mysql_admin',`
+@@ -343,13 +361,17 @@ interface(`mysql_admin',`
role_transition $2 mysqld_initrc_exec_t system_r;
allow $2 system_r;
@@ -27957,19 +28233,29 @@ index b246bdd..f414173 100644
files_etc_filetrans(pads_t, pads_config_t, file)
diff --git a/policy/modules/services/passenger.fc b/policy/modules/services/passenger.fc
new file mode 100644
-index 0000000..8d00972
+index 0000000..fbd07f6
--- /dev/null
+++ b/policy/modules/services/passenger.fc
-@@ -0,0 +1,6 @@
+@@ -0,0 +1,16 @@
+
+/usr/lib(64)?/ruby/gems/.*/passenger-.*/ext/apache2/ApplicationPoolServerExecutable -- gen_context(system_u:object_r:passenger_exec_t,s0)
+
++/usr/lib(64)?/ruby/gems/.*/passenger-.*/agents/PassengerWatchdog -- gen_context(system_u:object_r:passenger_exec_t,s0)
++
++/usr/lib(64)?/ruby/gems/.*/passenger-.*/agents/PassengerLoggingAgent -- gen_context(system_u:object_r:passenger_exec_t,s0)
++
++/usr/lib(64)?/ruby/gems/.*/passenger-.*/agents/apache2/PassengerHelperAgent -- gen_context(system_u:object_r:passenger_exec_t,s0)
++
++
++/var/log/passenger(/.*)? gen_context(system_u:object_r:passenger_log_t,s0)
++/var/log/passenger.* -- gen_context(system_u:object_r:passenger_log_t,s0)
++
+/var/lib/passenger(/.*)? gen_context(system_u:object_r:passenger_var_lib_t,s0)
+
+/var/run/passenger(/.*)? gen_context(system_u:object_r:passenger_var_run_t,s0)
diff --git a/policy/modules/services/passenger.if b/policy/modules/services/passenger.if
new file mode 100644
-index 0000000..66f9799
+index 0000000..9ef0492
--- /dev/null
+++ b/policy/modules/services/passenger.if
@@ -0,0 +1,67 @@
@@ -27995,7 +28281,7 @@ index 0000000..66f9799
+ allow $1 passenger_t:process signal;
+
+ domtrans_pattern($1, passenger_exec_t, passenger_t)
-+ allow $1 passenger_t:unix_stream_socket { read write shutdown };
++ allow $1 passenger_t:unix_stream_socket { read write connectto shutdown };
+ allow passenger_t $1:unix_stream_socket { read write };
+')
+
@@ -28042,10 +28328,10 @@ index 0000000..66f9799
+')
diff --git a/policy/modules/services/passenger.te b/policy/modules/services/passenger.te
new file mode 100644
-index 0000000..ba9fdb9
+index 0000000..efa9336
--- /dev/null
+++ b/policy/modules/services/passenger.te
-@@ -0,0 +1,66 @@
+@@ -0,0 +1,76 @@
+policy_module(passanger, 1.0.0)
+
+########################################
@@ -28062,6 +28348,9 @@ index 0000000..ba9fdb9
+type passenger_tmp_t;
+files_tmp_file(passenger_tmp_t)
+
++type passenger_log_t;
++logging_log_file(passenger_log_t)
++
+type passenger_var_lib_t;
+files_type(passenger_var_lib_t)
+
@@ -28075,11 +28364,16 @@ index 0000000..ba9fdb9
+# passanger local policy
+#
+
-+allow passenger_t self:capability { dac_override fsetid fowner chown setuid setgid };
-+allow passenger_t self:process signal;
++allow passenger_t self:capability { chown dac_override fsetid fowner kill setuid setgid sys_nice };
++allow passenger_t self:process { setpgid setsched sigkill signal };
++
+allow passenger_t self:fifo_file rw_fifo_file_perms;
+allow passenger_t self:unix_stream_socket { create_stream_socket_perms connectto };
+
++manage_dirs_pattern(passenger_t, passenger_log_t, passenger_log_t)
++manage_files_pattern(passenger_t, passenger_log_t, passenger_log_t)
++logging_log_filetrans(passenger_t, passenger_log_t, file)
++
+files_search_var_lib(passenger_t)
+manage_dirs_pattern(passenger_t, passenger_var_lib_t, passenger_var_lib_t)
+manage_files_pattern(passenger_t, passenger_var_lib_t, passenger_var_lib_t)
@@ -28090,6 +28384,8 @@ index 0000000..ba9fdb9
+manage_sock_files_pattern(passenger_t, passenger_var_run_t, passenger_var_run_t)
+files_pid_filetrans(passenger_t, passenger_var_run_t, { file dir sock_file })
+
++can_exec(passenger_t, passenger_exec_t)
++
+kernel_read_system_state(passenger_t)
+kernel_read_kernel_sysctls(passenger_t)
+
@@ -28738,6 +29034,16 @@ index 0000000..5793840
+miscfiles_read_localization(piranha_domain)
+
+sysnet_read_config(piranha_domain)
+diff --git a/policy/modules/services/plymouthd.fc b/policy/modules/services/plymouthd.fc
+index 5702ca4..5df5316 100644
+--- a/policy/modules/services/plymouthd.fc
++++ b/policy/modules/services/plymouthd.fc
+@@ -5,3 +5,5 @@
+ /var/lib/plymouth(/.*)? gen_context(system_u:object_r:plymouthd_var_lib_t,s0)
+ /var/run/plymouth(/.*)? gen_context(system_u:object_r:plymouthd_var_run_t,s0)
+ /var/spool/plymouth(/.*)? gen_context(system_u:object_r:plymouthd_spool_t,s0)
++
++/var/log/boot\.log -- gen_context(system_u:object_r:plymouthd_var_log_t,s0)
diff --git a/policy/modules/services/plymouthd.if b/policy/modules/services/plymouthd.if
index 9759ed8..07dd3ff 100644
--- a/policy/modules/services/plymouthd.if
@@ -28903,10 +29209,31 @@ index 9759ed8..07dd3ff 100644
admin_pattern($1, plymouthd_var_run_t)
')
diff --git a/policy/modules/services/plymouthd.te b/policy/modules/services/plymouthd.te
-index fb8dc84..56cc327 100644
+index fb8dc84..ef11559 100644
--- a/policy/modules/services/plymouthd.te
+++ b/policy/modules/services/plymouthd.te
-@@ -60,10 +60,20 @@ domain_use_interactive_fds(plymouthd_t)
+@@ -19,6 +19,9 @@ files_type(plymouthd_spool_t)
+ type plymouthd_var_lib_t;
+ files_type(plymouthd_var_lib_t)
+
++type plymouthd_var_log_t;
++logging_log_file(plymouthd_var_log_t)
++
+ type plymouthd_var_run_t;
+ files_pid_file(plymouthd_var_run_t)
+
+@@ -42,6 +45,10 @@ manage_dirs_pattern(plymouthd_t, plymouthd_var_lib_t, plymouthd_var_lib_t)
+ manage_files_pattern(plymouthd_t, plymouthd_var_lib_t, plymouthd_var_lib_t)
+ files_var_lib_filetrans(plymouthd_t, plymouthd_var_lib_t, { file dir })
+
++manage_dirs_pattern(plymouthd_t, plymouthd_var_log_t, plymouthd_var_log_t)
++manage_files_pattern(plymouthd_t, plymouthd_var_log_t, plymouthd_var_log_t)
++logging_log_filetrans(plymouthd_t, plymouthd_var_log_t, { file dir })
++
+ manage_dirs_pattern(plymouthd_t, plymouthd_var_run_t, plymouthd_var_run_t)
+ manage_files_pattern(plymouthd_t, plymouthd_var_run_t, plymouthd_var_run_t)
+ files_pid_filetrans(plymouthd_t, plymouthd_var_run_t, { file dir })
+@@ -60,10 +67,20 @@ domain_use_interactive_fds(plymouthd_t)
files_read_etc_files(plymouthd_t)
files_read_usr_files(plymouthd_t)
@@ -28927,7 +29254,7 @@ index fb8dc84..56cc327 100644
########################################
#
# Plymouth private policy
-@@ -74,6 +84,7 @@ allow plymouth_t self:fifo_file rw_file_perms;
+@@ -74,6 +91,7 @@ allow plymouth_t self:fifo_file rw_file_perms;
allow plymouth_t self:unix_stream_socket create_stream_socket_perms;
kernel_read_system_state(plymouth_t)
@@ -28935,7 +29262,7 @@ index fb8dc84..56cc327 100644
domain_use_interactive_fds(plymouth_t)
-@@ -87,7 +98,7 @@ sysnet_read_config(plymouth_t)
+@@ -87,7 +105,7 @@ sysnet_read_config(plymouth_t)
plymouthd_stream_connect(plymouth_t)
@@ -34250,7 +34577,7 @@ index 22dfeb4..d9f5dbc 100644
files_list_var_lib($1)
admin_pattern($1, setroubleshoot_var_lib_t)
diff --git a/policy/modules/services/setroubleshoot.te b/policy/modules/services/setroubleshoot.te
-index 086cd5f..679558c 100644
+index 086cd5f..b0ee422 100644
--- a/policy/modules/services/setroubleshoot.te
+++ b/policy/modules/services/setroubleshoot.te
@@ -32,6 +32,8 @@ files_pid_file(setroubleshoot_var_run_t)
@@ -34281,18 +34608,22 @@ index 086cd5f..679558c 100644
corecmd_exec_bin(setroubleshootd_t)
corecmd_exec_shell(setroubleshootd_t)
-@@ -121,6 +126,10 @@ seutil_read_bin_policy(setroubleshootd_t)
+@@ -121,6 +126,14 @@ seutil_read_bin_policy(setroubleshootd_t)
userdom_dontaudit_read_user_home_content_files(setroubleshootd_t)
optional_policy(`
+ locate_read_lib_files(setroubleshootd_t)
+')
+
++optional_policy(`
++ mock_getattr_lib(setroubleshootd_t)
++')
++
+optional_policy(`
dbus_system_domain(setroubleshootd_t, setroubleshootd_exec_t)
')
-@@ -152,6 +161,7 @@ corecmd_exec_bin(setroubleshoot_fixit_t)
+@@ -152,6 +165,7 @@ corecmd_exec_bin(setroubleshoot_fixit_t)
corecmd_exec_shell(setroubleshoot_fixit_t)
seutil_domtrans_setfiles(setroubleshoot_fixit_t)
@@ -34300,7 +34631,7 @@ index 086cd5f..679558c 100644
files_read_usr_files(setroubleshoot_fixit_t)
files_read_etc_files(setroubleshoot_fixit_t)
-@@ -164,6 +174,13 @@ logging_send_syslog_msg(setroubleshoot_fixit_t)
+@@ -164,6 +178,13 @@ logging_send_syslog_msg(setroubleshoot_fixit_t)
miscfiles_read_localization(setroubleshoot_fixit_t)
@@ -35579,7 +35910,7 @@ index 22adaca..784c363 100644
+ allow $1 sshd_t:process signull;
+')
diff --git a/policy/modules/services/ssh.te b/policy/modules/services/ssh.te
-index 2dad3c8..4877b5a 100644
+index 2dad3c8..4cdb5c2 100644
--- a/policy/modules/services/ssh.te
+++ b/policy/modules/services/ssh.te
@@ -6,26 +6,32 @@ policy_module(ssh, 2.2.0)
@@ -35705,7 +36036,15 @@ index 2dad3c8..4877b5a 100644
dev_read_urand(ssh_t)
-@@ -169,14 +173,13 @@ userdom_dontaudit_list_user_home_dirs(ssh_t)
+@@ -162,6 +166,7 @@ logging_read_generic_logs(ssh_t)
+ auth_use_nsswitch(ssh_t)
+
+ miscfiles_read_localization(ssh_t)
++miscfiles_read_generic_certs(ssh_t)
+
+ seutil_read_config(ssh_t)
+
+@@ -169,14 +174,13 @@ userdom_dontaudit_list_user_home_dirs(ssh_t)
userdom_search_user_home_dirs(ssh_t)
# Write to the user domain tty.
userdom_use_user_terminals(ssh_t)
@@ -35724,7 +36063,7 @@ index 2dad3c8..4877b5a 100644
')
tunable_policy(`use_nfs_home_dirs',`
-@@ -200,6 +203,57 @@ optional_policy(`
+@@ -200,6 +204,57 @@ optional_policy(`
xserver_domtrans_xauth(ssh_t)
')
@@ -35782,7 +36121,7 @@ index 2dad3c8..4877b5a 100644
##############################
#
# ssh_keysign_t local policy
-@@ -209,7 +263,7 @@ tunable_policy(`allow_ssh_keysign',`
+@@ -209,7 +264,7 @@ tunable_policy(`allow_ssh_keysign',`
allow ssh_keysign_t self:capability { setgid setuid };
allow ssh_keysign_t self:unix_stream_socket create_socket_perms;
@@ -35791,7 +36130,7 @@ index 2dad3c8..4877b5a 100644
dev_read_urand(ssh_keysign_t)
-@@ -232,33 +286,39 @@ optional_policy(`
+@@ -232,33 +287,39 @@ optional_policy(`
# so a tunnel can point to another ssh tunnel
allow sshd_t self:netlink_route_socket r_netlink_socket_perms;
allow sshd_t self:key { search link write };
@@ -35840,7 +36179,7 @@ index 2dad3c8..4877b5a 100644
')
optional_policy(`
-@@ -266,11 +326,24 @@ optional_policy(`
+@@ -266,11 +327,24 @@ optional_policy(`
')
optional_policy(`
@@ -35866,7 +36205,7 @@ index 2dad3c8..4877b5a 100644
')
optional_policy(`
-@@ -284,6 +357,11 @@ optional_policy(`
+@@ -284,6 +358,11 @@ optional_policy(`
')
optional_policy(`
@@ -35878,7 +36217,7 @@ index 2dad3c8..4877b5a 100644
unconfined_shell_domtrans(sshd_t)
')
-@@ -292,26 +370,26 @@ optional_policy(`
+@@ -292,26 +371,26 @@ optional_policy(`
')
ifdef(`TODO',`
@@ -35924,7 +36263,7 @@ index 2dad3c8..4877b5a 100644
') dnl endif TODO
########################################
-@@ -324,7 +402,6 @@ tunable_policy(`ssh_sysadm_login',`
+@@ -324,7 +403,6 @@ tunable_policy(`ssh_sysadm_login',`
dontaudit ssh_keygen_t self:capability sys_tty_config;
allow ssh_keygen_t self:process { sigchld sigkill sigstop signull signal };
@@ -35932,7 +36271,7 @@ index 2dad3c8..4877b5a 100644
allow ssh_keygen_t self:unix_stream_socket create_stream_socket_perms;
allow ssh_keygen_t sshd_key_t:file manage_file_perms;
-@@ -353,10 +430,6 @@ logging_send_syslog_msg(ssh_keygen_t)
+@@ -353,10 +431,6 @@ logging_send_syslog_msg(ssh_keygen_t)
userdom_dontaudit_use_unpriv_user_fds(ssh_keygen_t)
optional_policy(`
@@ -36001,7 +36340,7 @@ index 941380a..6dbfc01 100644
# Allow sssd_t to restart the apache service
sssd_initrc_domtrans($1)
diff --git a/policy/modules/services/sssd.te b/policy/modules/services/sssd.te
-index 8ffa257..7113802 100644
+index 8ffa257..12d37a2 100644
--- a/policy/modules/services/sssd.te
+++ b/policy/modules/services/sssd.te
@@ -28,9 +28,11 @@ files_pid_file(sssd_var_run_t)
@@ -36035,15 +36374,49 @@ index 8ffa257..7113802 100644
kernel_read_system_state(sssd_t)
corecmd_exec_bin(sssd_t)
-@@ -80,6 +83,8 @@ logging_send_audit_msgs(sssd_t)
+@@ -60,6 +63,7 @@ domain_obj_id_change_exemption(sssd_t)
+ files_list_tmp(sssd_t)
+ files_read_etc_files(sssd_t)
+ files_read_usr_files(sssd_t)
++files_list_var_lib(sssd_t)
+
+ fs_list_inotifyfs(sssd_t)
+
+@@ -69,7 +73,8 @@ seutil_read_file_contexts(sssd_t)
+
+ mls_file_read_to_clearance(sssd_t)
+
+-auth_use_nsswitch(sssd_t)
++
++# auth_use_nsswitch(sssd_t)
+ auth_domtrans_chk_passwd(sssd_t)
+ auth_domtrans_upd_passwd(sssd_t)
+
+@@ -79,6 +84,12 @@ logging_send_syslog_msg(sssd_t)
+ logging_send_audit_msgs(sssd_t)
miscfiles_read_localization(sssd_t)
-
-+userdom_manage_tmp_role(system_r, sssd_t)
++miscfiles_read_generic_certs(sssd_t)
+
++sysnet_dns_name_resolve(sssd_t)
++sysnet_use_ldap(sssd_t)
++
++userdom_manage_tmp_role(system_r, sssd_t)
+
optional_policy(`
dbus_system_bus_client(sssd_t)
- dbus_connect_system_bus(sssd_t)
+@@ -88,3 +99,11 @@ optional_policy(`
+ optional_policy(`
+ kerberos_manage_host_rcache(sssd_t)
+ ')
++
++optional_policy(`
++ dirsrv_stream_connect(sssd_t)
++')
++
++optional_policy(`
++ ldap_stream_connect(sssd_t)
++')
diff --git a/policy/modules/services/stunnel.if b/policy/modules/services/stunnel.if
index 6073656..eaf49b2 100644
--- a/policy/modules/services/stunnel.if
@@ -37301,7 +37674,7 @@ index 7c5d8d8..8822e63 100644
+ dontaudit $1 virtd_t:fifo_file write_fifo_file_perms;
+')
diff --git a/policy/modules/services/virt.te b/policy/modules/services/virt.te
-index 3eca020..a48a862 100644
+index 3eca020..333a07f 100644
--- a/policy/modules/services/virt.te
+++ b/policy/modules/services/virt.te
@@ -5,80 +5,97 @@ policy_module(virt, 1.4.0)
@@ -37558,7 +37931,12 @@ index 3eca020..a48a862 100644
kernel_request_load_module(virtd_t)
kernel_search_debugfs(virtd_t)
-@@ -243,18 +291,27 @@ dev_read_rand(virtd_t)
+@@ -239,22 +287,32 @@ corenet_tcp_connect_soundd_port(virtd_t)
+ corenet_rw_tun_tap_dev(virtd_t)
+
+ dev_rw_sysfs(virtd_t)
++dev_read_urand(virtd_t)
+ dev_read_rand(virtd_t)
dev_rw_kvm(virtd_t)
dev_getattr_all_chr_files(virtd_t)
dev_rw_mtrr(virtd_t)
@@ -37587,7 +37965,7 @@ index 3eca020..a48a862 100644
fs_list_auto_mountpoints(virtd_t)
fs_getattr_xattr_fs(virtd_t)
-@@ -262,6 +319,18 @@ fs_rw_anon_inodefs_files(virtd_t)
+@@ -262,6 +320,18 @@ fs_rw_anon_inodefs_files(virtd_t)
fs_list_inotifyfs(virtd_t)
fs_manage_cgroup_dirs(virtd_t)
fs_rw_cgroup_files(virtd_t)
@@ -37606,7 +37984,7 @@ index 3eca020..a48a862 100644
mcs_process_set_categories(virtd_t)
-@@ -285,16 +354,30 @@ modutils_read_module_config(virtd_t)
+@@ -285,16 +355,30 @@ modutils_read_module_config(virtd_t)
modutils_manage_module_config(virtd_t)
logging_send_syslog_msg(virtd_t)
@@ -37637,7 +38015,7 @@ index 3eca020..a48a862 100644
tunable_policy(`virt_use_nfs',`
fs_manage_nfs_dirs(virtd_t)
-@@ -365,6 +448,8 @@ optional_policy(`
+@@ -365,6 +449,8 @@ optional_policy(`
qemu_signal(virtd_t)
qemu_kill(virtd_t)
qemu_setsched(virtd_t)
@@ -37646,7 +38024,7 @@ index 3eca020..a48a862 100644
')
optional_policy(`
-@@ -396,12 +481,25 @@ optional_policy(`
+@@ -396,12 +482,25 @@ optional_policy(`
allow virt_domain self:capability { dac_read_search dac_override kill };
allow virt_domain self:process { execmem execstack signal getsched signull };
@@ -37673,7 +38051,7 @@ index 3eca020..a48a862 100644
append_files_pattern(virt_domain, virt_log_t, virt_log_t)
append_files_pattern(virt_domain, virt_var_lib_t, virt_var_lib_t)
-@@ -422,6 +520,7 @@ corenet_rw_tun_tap_dev(virt_domain)
+@@ -422,6 +521,7 @@ corenet_rw_tun_tap_dev(virt_domain)
corenet_tcp_bind_virt_migration_port(virt_domain)
corenet_tcp_connect_virt_migration_port(virt_domain)
@@ -37681,7 +38059,7 @@ index 3eca020..a48a862 100644
dev_read_rand(virt_domain)
dev_read_sound(virt_domain)
dev_read_urand(virt_domain)
-@@ -429,10 +528,12 @@ dev_write_sound(virt_domain)
+@@ -429,10 +529,12 @@ dev_write_sound(virt_domain)
dev_rw_ksm(virt_domain)
dev_rw_kvm(virt_domain)
dev_rw_qemu(virt_domain)
@@ -37694,7 +38072,7 @@ index 3eca020..a48a862 100644
files_read_usr_files(virt_domain)
files_read_var_files(virt_domain)
files_search_all(virt_domain)
-@@ -440,6 +541,11 @@ files_search_all(virt_domain)
+@@ -440,6 +542,11 @@ files_search_all(virt_domain)
fs_getattr_tmpfs(virt_domain)
fs_rw_anon_inodefs_files(virt_domain)
fs_rw_tmpfs_files(virt_domain)
@@ -37706,7 +38084,7 @@ index 3eca020..a48a862 100644
term_use_all_terms(virt_domain)
term_getattr_pty_fs(virt_domain)
-@@ -457,8 +563,117 @@ optional_policy(`
+@@ -457,8 +564,117 @@ optional_policy(`
')
optional_policy(`
@@ -39209,7 +39587,7 @@ index da2601a..6b12229 100644
+ manage_files_pattern($1, user_fonts_config_t, user_fonts_config_t)
+')
diff --git a/policy/modules/services/xserver.te b/policy/modules/services/xserver.te
-index 145fc4b..6b4d8c9 100644
+index 145fc4b..05cbefe 100644
--- a/policy/modules/services/xserver.te
+++ b/policy/modules/services/xserver.te
@@ -26,27 +26,50 @@ gen_require(`
@@ -39828,13 +40206,17 @@ index 145fc4b..6b4d8c9 100644
tunable_policy(`xdm_sysadm_login',`
userdom_xsession_spec_domtrans_all_users(xdm_t)
# FIXME:
-@@ -504,11 +714,17 @@ tunable_policy(`xdm_sysadm_login',`
+@@ -504,11 +714,21 @@ tunable_policy(`xdm_sysadm_login',`
')
optional_policy(`
+ accountsd_read_lib_files(xdm_t)
+')
+
++optional_policy(`
++ acct_dontaudit_list_data(xdm_t)
++')
++
+optional_policy(`
alsa_domtrans(xdm_t)
+ alsa_read_rw_config(xdm_t)
@@ -39846,7 +40228,7 @@ index 145fc4b..6b4d8c9 100644
')
optional_policy(`
-@@ -516,12 +732,49 @@ optional_policy(`
+@@ -516,12 +736,49 @@ optional_policy(`
')
optional_policy(`
@@ -39896,7 +40278,7 @@ index 145fc4b..6b4d8c9 100644
hostname_exec(xdm_t)
')
-@@ -539,28 +792,63 @@ optional_policy(`
+@@ -539,28 +796,63 @@ optional_policy(`
')
optional_policy(`
@@ -39969,7 +40351,7 @@ index 145fc4b..6b4d8c9 100644
')
optional_policy(`
-@@ -572,6 +860,10 @@ optional_policy(`
+@@ -572,6 +864,10 @@ optional_policy(`
')
optional_policy(`
@@ -39980,7 +40362,7 @@ index 145fc4b..6b4d8c9 100644
xfs_stream_connect(xdm_t)
')
-@@ -596,7 +888,7 @@ allow xserver_t input_xevent_t:x_event send;
+@@ -596,7 +892,7 @@ allow xserver_t input_xevent_t:x_event send;
# execheap needed until the X module loader is fixed.
# NVIDIA Needs execstack
@@ -39989,7 +40371,7 @@ index 145fc4b..6b4d8c9 100644
dontaudit xserver_t self:capability chown;
allow xserver_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimit execmem execstack execheap };
allow xserver_t self:fd use;
-@@ -610,6 +902,14 @@ allow xserver_t self:unix_dgram_socket { create_socket_perms sendto };
+@@ -610,6 +906,14 @@ allow xserver_t self:unix_dgram_socket { create_socket_perms sendto };
allow xserver_t self:unix_stream_socket { create_stream_socket_perms connectto };
allow xserver_t self:tcp_socket create_stream_socket_perms;
allow xserver_t self:udp_socket create_socket_perms;
@@ -40004,7 +40386,7 @@ index 145fc4b..6b4d8c9 100644
manage_dirs_pattern(xserver_t, xserver_tmp_t, xserver_tmp_t)
manage_files_pattern(xserver_t, xserver_tmp_t, xserver_tmp_t)
-@@ -629,12 +929,19 @@ manage_files_pattern(xserver_t, xkb_var_lib_t, xkb_var_lib_t)
+@@ -629,12 +933,19 @@ manage_files_pattern(xserver_t, xkb_var_lib_t, xkb_var_lib_t)
manage_lnk_files_pattern(xserver_t, xkb_var_lib_t, xkb_var_lib_t)
files_search_var_lib(xserver_t)
@@ -40026,7 +40408,7 @@ index 145fc4b..6b4d8c9 100644
kernel_read_system_state(xserver_t)
kernel_read_device_sysctls(xserver_t)
-@@ -642,6 +949,7 @@ kernel_read_modprobe_sysctls(xserver_t)
+@@ -642,6 +953,7 @@ kernel_read_modprobe_sysctls(xserver_t)
# Xorg wants to check if kernel is tainted
kernel_read_kernel_sysctls(xserver_t)
kernel_write_proc_files(xserver_t)
@@ -40034,7 +40416,7 @@ index 145fc4b..6b4d8c9 100644
# Run helper programs in xserver_t.
corecmd_exec_bin(xserver_t)
-@@ -668,7 +976,6 @@ dev_rw_apm_bios(xserver_t)
+@@ -668,7 +980,6 @@ dev_rw_apm_bios(xserver_t)
dev_rw_agp(xserver_t)
dev_rw_framebuffer(xserver_t)
dev_manage_dri_dev(xserver_t)
@@ -40042,7 +40424,7 @@ index 145fc4b..6b4d8c9 100644
dev_create_generic_dirs(xserver_t)
dev_setattr_generic_dirs(xserver_t)
# raw memory access is needed if not using the frame buffer
-@@ -678,11 +985,17 @@ dev_wx_raw_memory(xserver_t)
+@@ -678,11 +989,17 @@ dev_wx_raw_memory(xserver_t)
dev_rw_xserver_misc(xserver_t)
# read events - the synaptics touchpad driver reads raw events
dev_rw_input_dev(xserver_t)
@@ -40060,7 +40442,7 @@ index 145fc4b..6b4d8c9 100644
# brought on by rhgb
files_search_mnt(xserver_t)
-@@ -693,8 +1006,13 @@ fs_getattr_xattr_fs(xserver_t)
+@@ -693,8 +1010,13 @@ fs_getattr_xattr_fs(xserver_t)
fs_search_nfs(xserver_t)
fs_search_auto_mountpoints(xserver_t)
fs_search_ramfs(xserver_t)
@@ -40074,7 +40456,7 @@ index 145fc4b..6b4d8c9 100644
selinux_validate_context(xserver_t)
selinux_compute_access_vector(xserver_t)
-@@ -716,11 +1034,14 @@ logging_send_audit_msgs(xserver_t)
+@@ -716,11 +1038,14 @@ logging_send_audit_msgs(xserver_t)
miscfiles_read_localization(xserver_t)
miscfiles_read_fonts(xserver_t)
@@ -40089,7 +40471,7 @@ index 145fc4b..6b4d8c9 100644
userdom_search_user_home_dirs(xserver_t)
userdom_use_user_ttys(xserver_t)
-@@ -773,12 +1094,28 @@ optional_policy(`
+@@ -773,12 +1098,28 @@ optional_policy(`
')
optional_policy(`
@@ -40119,7 +40501,7 @@ index 145fc4b..6b4d8c9 100644
unconfined_domtrans(xserver_t)
')
-@@ -787,6 +1124,10 @@ optional_policy(`
+@@ -787,6 +1128,10 @@ optional_policy(`
')
optional_policy(`
@@ -40130,7 +40512,7 @@ index 145fc4b..6b4d8c9 100644
xfs_stream_connect(xserver_t)
')
-@@ -802,10 +1143,10 @@ allow xserver_t xdm_t:shm rw_shm_perms;
+@@ -802,10 +1147,10 @@ allow xserver_t xdm_t:shm rw_shm_perms;
# NB we do NOT allow xserver_t xdm_var_lib_t:dir, only access to an open
# handle of a file inside the dir!!!
@@ -40144,7 +40526,7 @@ index 145fc4b..6b4d8c9 100644
# Label pid and temporary files with derived types.
manage_files_pattern(xserver_t, xdm_tmp_t, xdm_tmp_t)
-@@ -813,7 +1154,7 @@ manage_lnk_files_pattern(xserver_t, xdm_tmp_t, xdm_tmp_t)
+@@ -813,7 +1158,7 @@ manage_lnk_files_pattern(xserver_t, xdm_tmp_t, xdm_tmp_t)
manage_sock_files_pattern(xserver_t, xdm_tmp_t, xdm_tmp_t)
# Run xkbcomp.
@@ -40153,7 +40535,7 @@ index 145fc4b..6b4d8c9 100644
can_exec(xserver_t, xkb_var_lib_t)
# VNC v4 module in X server
-@@ -826,6 +1167,9 @@ init_use_fds(xserver_t)
+@@ -826,6 +1171,9 @@ init_use_fds(xserver_t)
# to read ROLE_home_t - examine this in more detail
# (xauth?)
userdom_read_user_home_content_files(xserver_t)
@@ -40163,7 +40545,7 @@ index 145fc4b..6b4d8c9 100644
tunable_policy(`use_nfs_home_dirs',`
fs_manage_nfs_dirs(xserver_t)
-@@ -833,6 +1177,11 @@ tunable_policy(`use_nfs_home_dirs',`
+@@ -833,6 +1181,11 @@ tunable_policy(`use_nfs_home_dirs',`
fs_manage_nfs_symlinks(xserver_t)
')
@@ -40175,7 +40557,7 @@ index 145fc4b..6b4d8c9 100644
tunable_policy(`use_samba_home_dirs',`
fs_manage_cifs_dirs(xserver_t)
fs_manage_cifs_files(xserver_t)
-@@ -841,11 +1190,14 @@ tunable_policy(`use_samba_home_dirs',`
+@@ -841,11 +1194,14 @@ tunable_policy(`use_samba_home_dirs',`
optional_policy(`
dbus_system_bus_client(xserver_t)
@@ -40192,7 +40574,7 @@ index 145fc4b..6b4d8c9 100644
')
optional_policy(`
-@@ -853,6 +1205,10 @@ optional_policy(`
+@@ -853,6 +1209,10 @@ optional_policy(`
rhgb_rw_tmpfs_files(xserver_t)
')
@@ -40203,7 +40585,7 @@ index 145fc4b..6b4d8c9 100644
########################################
#
# Rules common to all X window domains
-@@ -896,7 +1252,7 @@ allow x_domain xproperty_t:x_property { getattr create read write append destroy
+@@ -896,7 +1256,7 @@ allow x_domain xproperty_t:x_property { getattr create read write append destroy
allow x_domain root_xdrawable_t:x_drawable { getattr setattr list_child add_child remove_child send receive hide show };
# operations allowed on my windows
allow x_domain self:x_drawable { create destroy getattr setattr read write show hide list_child add_child remove_child manage send receive };
@@ -40212,7 +40594,7 @@ index 145fc4b..6b4d8c9 100644
# operations allowed on all windows
allow x_domain x_domain:x_drawable { getattr get_property set_property remove_child };
-@@ -950,11 +1306,31 @@ allow x_domain self:x_resource { read write };
+@@ -950,11 +1310,31 @@ allow x_domain self:x_resource { read write };
# can mess with the screensaver
allow x_domain xserver_t:x_screen { getattr saver_getattr };
@@ -40244,7 +40626,7 @@ index 145fc4b..6b4d8c9 100644
tunable_policy(`! xserver_object_manager',`
# should be xserver_unconfined(x_domain),
# but typeattribute doesnt work in conditionals
-@@ -976,18 +1352,32 @@ tunable_policy(`! xserver_object_manager',`
+@@ -976,18 +1356,32 @@ tunable_policy(`! xserver_object_manager',`
allow x_domain xevent_type:{ x_event x_synthetic_event } *;
')
@@ -40871,7 +41253,7 @@ index 1c4b1e7..ffa4134 100644
/var/run/pam_ssh(/.*)? gen_context(system_u:object_r:var_auth_t,s0)
/var/run/sepermit(/.*)? gen_context(system_u:object_r:pam_var_run_t,s0)
diff --git a/policy/modules/system/authlogin.if b/policy/modules/system/authlogin.if
-index bea0ade..716da1d 100644
+index bea0ade..cbd62c5 100644
--- a/policy/modules/system/authlogin.if
+++ b/policy/modules/system/authlogin.if
@@ -57,6 +57,8 @@ interface(`auth_use_pam',`
@@ -41198,37 +41580,88 @@ index bea0ade..716da1d 100644
## Read login records files (/var/log/wtmp).
##
##
-@@ -1500,6 +1692,8 @@ interface(`auth_manage_login_records',`
+@@ -1500,28 +1692,38 @@ interface(`auth_manage_login_records',`
#
interface(`auth_use_nsswitch',`
-+ allow $1 self:netlink_route_socket r_netlink_socket_perms;
-+
- files_list_var_lib($1)
-
+- files_list_var_lib($1)
+-
# read /etc/nsswitch.conf
-@@ -1531,7 +1725,15 @@ interface(`auth_use_nsswitch',`
+ files_read_etc_files($1)
+
+- miscfiles_read_generic_certs($1)
+-
+ sysnet_dns_name_resolve($1)
+- sysnet_use_ldap($1)
++
++ tunable_policy(`authlogin_use_sssd',`', `
++ files_list_var_lib($1)
++
++ miscfiles_read_generic_certs($1)
++
++ sysnet_use_ldap($1)
++ ')
+
+ optional_policy(`
+- avahi_stream_connect($1)
++ tunable_policy(`authlogin_use_sssd',`', `
++ dirsrv_stream_connect($1)
++ ')
+ ')
+
+ optional_policy(`
+- ldap_stream_connect($1)
++ tunable_policy(`authlogin_use_sssd',`', `
++ ldap_stream_connect($1)
++ ')
+ ')
+
+ optional_policy(`
+- likewise_stream_connect_lsassd($1)
++ tunable_policy(`authlogin_use_sssd',`', `
++ likewise_stream_connect_lsassd($1)
++ ')
+ ')
+
++ # can not wrap nis_use_ypbind or kerberos_use, but they both have booleans you can turn off.
+ optional_policy(`
+ kerberos_use($1)
+ ')
+@@ -1531,13 +1733,25 @@ interface(`auth_use_nsswitch',`
')
optional_policy(`
- nscd_socket_use($1)
+ nscd_use($1)
-+ ')
-+
-+ optional_policy(`
-+ nslcd_stream_connect($1)
+ ')
+
+ optional_policy(`
+- samba_stream_connect_winbind($1)
+- samba_read_var_files($1)
+- samba_dontaudit_write_var_files($1)
++ tunable_policy(`authlogin_use_sssd',`', `
++ nslcd_stream_connect($1)
++ ')
+ ')
+
+ optional_policy(`
+ sssd_stream_connect($1)
++ ')
++
++ optional_policy(`
++ tunable_policy(`authlogin_use_sssd',`', `
++ samba_stream_connect_winbind($1)
++ samba_read_var_files($1)
++ samba_dontaudit_write_var_files($1)
++ ')
')
+ ')
- optional_policy(`
diff --git a/policy/modules/system/authlogin.te b/policy/modules/system/authlogin.te
-index 54d122b..7413dc4 100644
+index 54d122b..c2a3970 100644
--- a/policy/modules/system/authlogin.te
+++ b/policy/modules/system/authlogin.te
-@@ -5,9 +5,17 @@ policy_module(authlogin, 2.2.0)
+@@ -5,9 +5,24 @@ policy_module(authlogin, 2.2.0)
# Declarations
#
@@ -41238,6 +41671,13 @@ index 54d122b..7413dc4 100644
+##
+##
+gen_tunable(authlogin_radius, false)
++
++##
++##
++## Allow users to login using a sssd server
++##
++##
++gen_tunable(authlogin_use_sssd, false)
+
attribute can_read_shadow_passwords;
attribute can_write_shadow_passwords;
@@ -41246,7 +41686,7 @@ index 54d122b..7413dc4 100644
type auth_cache_t;
logging_log_file(auth_cache_t)
-@@ -44,7 +52,7 @@ type pam_tmp_t;
+@@ -44,7 +59,7 @@ type pam_tmp_t;
files_tmp_file(pam_tmp_t)
type pam_var_console_t;
@@ -41255,7 +41695,7 @@ index 54d122b..7413dc4 100644
type pam_var_run_t;
files_pid_file(pam_var_run_t)
-@@ -83,7 +91,7 @@ logging_log_file(wtmp_t)
+@@ -83,7 +98,7 @@ logging_log_file(wtmp_t)
allow chkpwd_t self:capability { dac_override setuid };
dontaudit chkpwd_t self:capability sys_tty_config;
@@ -41264,7 +41704,7 @@ index 54d122b..7413dc4 100644
allow chkpwd_t shadow_t:file read_file_perms;
files_list_etc(chkpwd_t)
-@@ -394,3 +402,11 @@ optional_policy(`
+@@ -394,3 +409,11 @@ optional_policy(`
xserver_use_xdm_fds(utempter_t)
xserver_rw_xdm_pipes(utempter_t)
')
@@ -41591,10 +42031,10 @@ index c310775..d5fc685 100644
term_dontaudit_use_console(hostname_t)
diff --git a/policy/modules/system/init.fc b/policy/modules/system/init.fc
-index 9775375..299b718 100644
+index 6fed22c..06e5395 100644
--- a/policy/modules/system/init.fc
+++ b/policy/modules/system/init.fc
-@@ -24,7 +24,21 @@ ifdef(`distro_gentoo',`
+@@ -33,7 +33,21 @@ ifdef(`distro_gentoo', `
#
# /sbin
#
@@ -41616,7 +42056,7 @@ index 9775375..299b718 100644
ifdef(`distro_gentoo', `
/sbin/rc -- gen_context(system_u:object_r:initrc_exec_t,s0)
-@@ -44,6 +58,9 @@ ifdef(`distro_gentoo', `
+@@ -53,6 +67,9 @@ ifdef(`distro_gentoo', `
/usr/sbin/apachectl -- gen_context(system_u:object_r:initrc_exec_t,s0)
/usr/sbin/open_init_pty -- gen_context(system_u:object_r:initrc_exec_t,s0)
@@ -41627,7 +42067,7 @@ index 9775375..299b718 100644
#
# /var
diff --git a/policy/modules/system/init.if b/policy/modules/system/init.if
-index df3fa64..473d2b4 100644
+index ed152c4..be3bb8f 100644
--- a/policy/modules/system/init.if
+++ b/policy/modules/system/init.if
@@ -79,6 +79,40 @@ interface(`init_script_domain',`
@@ -41675,9 +42115,9 @@ index df3fa64..473d2b4 100644
role system_r types $1;
-- domtrans_pattern(init_t,$2,$1)
+- domtrans_pattern(init_t, $2, $1)
+ tunable_policy(`init_systemd',`', `
-+ domtrans_pattern(init_t,$2,$1)
++ domtrans_pattern(init_t, $2, $1)
+ allow init_t $1:unix_stream_socket create_stream_socket_perms;
+ allow $1 init_t:unix_dgram_socket sendto;
+ ')
@@ -41695,10 +42135,12 @@ index df3fa64..473d2b4 100644
')
typeattribute $1 daemon;
-@@ -205,6 +245,21 @@ interface(`init_daemon_domain',`
+@@ -204,7 +244,22 @@ interface(`init_daemon_domain',`
+
role system_r types $1;
- domtrans_pattern(initrc_t,$2,$1)
+- domtrans_pattern(initrc_t, $2, $1)
++ domtrans_pattern(initrc_t,$2,$1)
+ allow initrc_t $1:process siginh;
+ allow $1 initrc_transition_domain:fifo_file rw_inherited_fifo_file_perms;
+ allow $1 initrc_transition_domain:fd use;
@@ -41724,8 +42166,8 @@ index df3fa64..473d2b4 100644
+ type init_t;
')
-- init_daemon_domain($1,$2)
-+# init_daemon_domain($1,$2)
+- init_daemon_domain($1, $2)
++# init_daemon_domain($1, $2)
ifdef(`enable_mcs',`
range_transition initrc_t $2:process $3;
@@ -41739,7 +42181,7 @@ index df3fa64..473d2b4 100644
')
')
-@@ -336,8 +394,10 @@ interface(`init_ranged_daemon_domain',`
+@@ -336,15 +394,31 @@ interface(`init_ranged_daemon_domain',`
#
interface(`init_system_domain',`
gen_require(`
@@ -41749,11 +42191,12 @@ index df3fa64..473d2b4 100644
+ attribute initrc_transition_domain;
')
- application_domain($1,$2)
-@@ -345,6 +405,20 @@ interface(`init_system_domain',`
+ application_domain($1, $2)
+
role system_r types $1;
- domtrans_pattern(initrc_t,$2,$1)
+- domtrans_pattern(initrc_t, $2, $1)
++ domtrans_pattern(initrc_t,$2,$1)
+ allow initrc_t $1:process siginh;
+ allow $1 initrc_transition_domain:fifo_file rw_inherited_fifo_file_perms;
+ allow $1 initrc_transition_domain:fd use;
@@ -41816,7 +42259,7 @@ index df3fa64..473d2b4 100644
+ type init_t;
')
- init_system_domain($1,$2)
+ init_system_domain($1, $2)
ifdef(`enable_mcs',`
range_transition initrc_t $2:process $3;
@@ -41826,10 +42269,10 @@ index df3fa64..473d2b4 100644
ifdef(`enable_mls',`
range_transition initrc_t $2:process $3;
+ range_transition init_t $2:process $3;
+ mls_rangetrans_target($1)
')
')
-
-@@ -687,19 +795,24 @@ interface(`init_telinit',`
+@@ -688,19 +796,24 @@ interface(`init_telinit',`
type initctl_t;
')
@@ -41855,7 +42298,7 @@ index df3fa64..473d2b4 100644
')
')
-@@ -772,18 +885,19 @@ interface(`init_script_file_entry_type',`
+@@ -773,18 +886,19 @@ interface(`init_script_file_entry_type',`
#
interface(`init_spec_domtrans_script',`
gen_require(`
@@ -41879,7 +42322,7 @@ index df3fa64..473d2b4 100644
')
')
-@@ -799,19 +913,41 @@ interface(`init_spec_domtrans_script',`
+@@ -800,19 +914,41 @@ interface(`init_spec_domtrans_script',`
#
interface(`init_domtrans_script',`
gen_require(`
@@ -41925,7 +42368,7 @@ index df3fa64..473d2b4 100644
')
########################################
-@@ -867,8 +1003,12 @@ interface(`init_script_file_domtrans',`
+@@ -868,8 +1004,12 @@ interface(`init_script_file_domtrans',`
interface(`init_labeled_script_domtrans',`
gen_require(`
type initrc_t;
@@ -41938,7 +42381,7 @@ index df3fa64..473d2b4 100644
domtrans_pattern($1, $2, initrc_t)
files_search_etc($1)
')
-@@ -1129,12 +1269,7 @@ interface(`init_read_script_state',`
+@@ -1130,12 +1270,7 @@ interface(`init_read_script_state',`
')
kernel_search_proc($1)
@@ -41952,7 +42395,7 @@ index df3fa64..473d2b4 100644
')
########################################
-@@ -1374,6 +1509,27 @@ interface(`init_dbus_send_script',`
+@@ -1375,6 +1510,27 @@ interface(`init_dbus_send_script',`
########################################
##
## Send and receive messages from
@@ -41980,7 +42423,7 @@ index df3fa64..473d2b4 100644
## init scripts over dbus.
##
##
-@@ -1460,6 +1616,25 @@ interface(`init_getattr_script_status_files',`
+@@ -1461,6 +1617,25 @@ interface(`init_getattr_script_status_files',`
########################################
##
@@ -42006,7 +42449,7 @@ index df3fa64..473d2b4 100644
## Do not audit attempts to read init script
## status files.
##
-@@ -1673,7 +1848,7 @@ interface(`init_dontaudit_rw_utmp',`
+@@ -1674,7 +1849,7 @@ interface(`init_dontaudit_rw_utmp',`
type initrc_var_run_t;
')
@@ -42015,7 +42458,7 @@ index df3fa64..473d2b4 100644
')
########################################
-@@ -1748,3 +1923,93 @@ interface(`init_udp_recvfrom_all_daemons',`
+@@ -1749,3 +1924,93 @@ interface(`init_udp_recvfrom_all_daemons',`
')
corenet_udp_recvfrom_labeled($1, daemon)
')
@@ -42110,7 +42553,7 @@ index df3fa64..473d2b4 100644
+ allow $1 init_t:unix_dgram_socket sendto;
+')
diff --git a/policy/modules/system/init.te b/policy/modules/system/init.te
-index 2fbb25a..2cba7c4 100644
+index 0580e7c..28fd86c 100644
--- a/policy/modules/system/init.te
+++ b/policy/modules/system/init.te
@@ -16,6 +16,27 @@ gen_require(`
@@ -42277,7 +42720,7 @@ index 2fbb25a..2cba7c4 100644
+ dev_write_kmsg(init_t)
+ dev_write_urand(init_t)
+ dev_rw_autofs(init_t)
-+ dev_create_generic_symlinks(init_t)
++ dev_manage_generic_symlinks(init_t)
+ dev_manage_generic_dirs(init_t)
+ dev_manage_generic_files(init_t)
+ dev_read_generic_chr_files(init_t)
@@ -42534,7 +42977,7 @@ index 2fbb25a..2cba7c4 100644
userdom_read_user_home_content_files(initrc_t)
# Allow access to the sysadm TTYs. Note that this will give access to the
# TTYs to any process in the initrc_t domain. Therefore, daemons and such
-@@ -473,7 +658,7 @@ ifdef(`distro_redhat',`
+@@ -474,7 +659,7 @@ ifdef(`distro_redhat',`
# Red Hat systems seem to have a stray
# fd open from the initrd
@@ -42543,7 +42986,7 @@ index 2fbb25a..2cba7c4 100644
files_dontaudit_read_root_files(initrc_t)
# These seem to be from the initrd
-@@ -519,6 +704,23 @@ ifdef(`distro_redhat',`
+@@ -520,6 +705,23 @@ ifdef(`distro_redhat',`
optional_policy(`
bind_manage_config_dirs(initrc_t)
bind_write_config(initrc_t)
@@ -42567,7 +43010,7 @@ index 2fbb25a..2cba7c4 100644
')
optional_policy(`
-@@ -526,10 +728,17 @@ ifdef(`distro_redhat',`
+@@ -527,10 +729,17 @@ ifdef(`distro_redhat',`
rpc_write_exports(initrc_t)
rpc_manage_nfs_state_data(initrc_t)
')
@@ -42585,7 +43028,7 @@ index 2fbb25a..2cba7c4 100644
')
optional_policy(`
-@@ -544,6 +753,35 @@ ifdef(`distro_suse',`
+@@ -545,6 +754,35 @@ ifdef(`distro_suse',`
')
')
@@ -42621,7 +43064,7 @@ index 2fbb25a..2cba7c4 100644
optional_policy(`
amavis_search_lib(initrc_t)
amavis_setattr_pid_files(initrc_t)
-@@ -556,6 +794,8 @@ optional_policy(`
+@@ -557,6 +795,8 @@ optional_policy(`
optional_policy(`
apache_read_config(initrc_t)
apache_list_modules(initrc_t)
@@ -42630,7 +43073,7 @@ index 2fbb25a..2cba7c4 100644
')
optional_policy(`
-@@ -572,6 +812,7 @@ optional_policy(`
+@@ -573,6 +813,7 @@ optional_policy(`
optional_policy(`
cgroup_stream_connect_cgred(initrc_t)
@@ -42638,7 +43081,7 @@ index 2fbb25a..2cba7c4 100644
')
optional_policy(`
-@@ -584,6 +825,11 @@ optional_policy(`
+@@ -585,6 +826,11 @@ optional_policy(`
')
optional_policy(`
@@ -42650,7 +43093,7 @@ index 2fbb25a..2cba7c4 100644
dev_getattr_printer_dev(initrc_t)
cups_read_log(initrc_t)
-@@ -600,9 +846,13 @@ optional_policy(`
+@@ -601,9 +847,13 @@ optional_policy(`
dbus_connect_system_bus(initrc_t)
dbus_system_bus_client(initrc_t)
dbus_read_config(initrc_t)
@@ -42664,7 +43107,7 @@ index 2fbb25a..2cba7c4 100644
')
optional_policy(`
-@@ -701,7 +951,13 @@ optional_policy(`
+@@ -702,7 +952,13 @@ optional_policy(`
')
optional_policy(`
@@ -42678,7 +43121,7 @@ index 2fbb25a..2cba7c4 100644
mta_dontaudit_read_spool_symlinks(initrc_t)
')
-@@ -724,6 +980,10 @@ optional_policy(`
+@@ -725,6 +981,10 @@ optional_policy(`
')
optional_policy(`
@@ -42689,7 +43132,7 @@ index 2fbb25a..2cba7c4 100644
postgresql_manage_db(initrc_t)
postgresql_read_config(initrc_t)
')
-@@ -737,6 +997,10 @@ optional_policy(`
+@@ -738,6 +998,10 @@ optional_policy(`
')
optional_policy(`
@@ -42700,7 +43143,7 @@ index 2fbb25a..2cba7c4 100644
quota_manage_flags(initrc_t)
')
-@@ -745,6 +1009,10 @@ optional_policy(`
+@@ -746,6 +1010,10 @@ optional_policy(`
')
optional_policy(`
@@ -42711,7 +43154,7 @@ index 2fbb25a..2cba7c4 100644
fs_write_ramfs_sockets(initrc_t)
fs_search_ramfs(initrc_t)
-@@ -766,8 +1034,6 @@ optional_policy(`
+@@ -767,8 +1035,6 @@ optional_policy(`
# bash tries ioctl for some reason
files_dontaudit_ioctl_all_pids(initrc_t)
@@ -42720,7 +43163,7 @@ index 2fbb25a..2cba7c4 100644
')
optional_policy(`
-@@ -776,14 +1042,21 @@ optional_policy(`
+@@ -777,14 +1043,21 @@ optional_policy(`
')
optional_policy(`
@@ -42742,7 +43185,7 @@ index 2fbb25a..2cba7c4 100644
optional_policy(`
ssh_dontaudit_read_server_keys(initrc_t)
-@@ -805,11 +1078,19 @@ optional_policy(`
+@@ -806,11 +1079,19 @@ optional_policy(`
')
optional_policy(`
@@ -42763,7 +43206,7 @@ index 2fbb25a..2cba7c4 100644
ifdef(`distro_redhat',`
# system-config-services causes avc messages that should be dontaudited
-@@ -819,6 +1100,25 @@ optional_policy(`
+@@ -820,6 +1101,25 @@ optional_policy(`
optional_policy(`
mono_domtrans(initrc_t)
')
@@ -42789,7 +43232,7 @@ index 2fbb25a..2cba7c4 100644
')
optional_policy(`
-@@ -844,3 +1144,59 @@ optional_policy(`
+@@ -845,3 +1145,59 @@ optional_policy(`
optional_policy(`
zebra_read_config(initrc_t)
')
@@ -45651,7 +46094,7 @@ index 170e2c7..bbaa8cf 100644
+')
+')
diff --git a/policy/modules/system/selinuxutil.te b/policy/modules/system/selinuxutil.te
-index ff5d72d..f5fdb63 100644
+index ff5d72d..8526f19 100644
--- a/policy/modules/system/selinuxutil.te
+++ b/policy/modules/system/selinuxutil.te
@@ -22,6 +22,9 @@ attribute can_relabelto_binary_policy;
@@ -45808,7 +46251,16 @@ index ff5d72d..f5fdb63 100644
# often the administrator runs such programs from a directory that is owned
# by a different user or has restrictive SE permissions, do not want to audit
-@@ -405,6 +423,10 @@ ifndef(`direct_sysadm_daemon',`
+@@ -380,6 +398,8 @@ selinux_compute_create_context(run_init_t)
+ selinux_compute_relabel_context(run_init_t)
+ selinux_compute_user_contexts(run_init_t)
+
++term_use_console(run_init_t)
++
+ auth_use_nsswitch(run_init_t)
+ auth_domtrans_chk_passwd(run_init_t)
+ auth_domtrans_upd_passwd(run_init_t)
+@@ -405,6 +425,10 @@ ifndef(`direct_sysadm_daemon',`
')
')
@@ -45819,7 +46271,7 @@ index ff5d72d..f5fdb63 100644
ifdef(`distro_ubuntu',`
optional_policy(`
unconfined_domain(run_init_t)
-@@ -420,61 +442,22 @@ optional_policy(`
+@@ -420,61 +444,22 @@ optional_policy(`
# semodule local policy
#
@@ -45889,7 +46341,7 @@ index ff5d72d..f5fdb63 100644
# netfilter_contexts:
seutil_manage_default_contexts(semanage_t)
-@@ -483,12 +466,23 @@ ifdef(`distro_debian',`
+@@ -483,12 +468,23 @@ ifdef(`distro_debian',`
files_read_var_lib_symlinks(semanage_t)
')
@@ -45913,7 +46365,7 @@ index ff5d72d..f5fdb63 100644
# cjp: need a more general way to handle this:
ifdef(`enable_mls',`
# read secadm tmp files
-@@ -498,112 +492,54 @@ ifdef(`enable_mls',`
+@@ -498,112 +494,54 @@ ifdef(`enable_mls',`
userdom_read_user_tmp_files(semanage_t)
')
@@ -46090,7 +46542,7 @@ index 726619b..36426f7 100644
+
+/etc/firestarter/firestarter\.sh gen_context(system_u:object_r:dhcpc_helper_exec_t,s0)
diff --git a/policy/modules/system/sysnetwork.if b/policy/modules/system/sysnetwork.if
-index 8e71fb7..350d003 100644
+index 8e71fb7..f1b155a 100644
--- a/policy/modules/system/sysnetwork.if
+++ b/policy/modules/system/sysnetwork.if
@@ -60,6 +60,24 @@ interface(`sysnet_run_dhcpc',`
@@ -46207,21 +46659,15 @@ index 8e71fb7..350d003 100644
## Read network config files.
##
##
-@@ -403,11 +496,8 @@ interface(`sysnet_manage_config',`
- type net_conf_t;
+@@ -406,6 +499,7 @@ interface(`sysnet_manage_config',`
+ allow $1 net_conf_t:file manage_file_perms;
+
+ ifdef(`distro_redhat',`
++ allow $1 net_conf_t:dir list_dir_perms;
+ manage_files_pattern($1, net_conf_t, net_conf_t)
')
-
-- allow $1 net_conf_t:file manage_file_perms;
--
-- ifdef(`distro_redhat',`
-- manage_files_pattern($1, net_conf_t, net_conf_t)
-- ')
-+ allow $1 net_conf_t:dir list_dir_perms;
-+ manage_files_pattern($1, net_conf_t, net_conf_t)
')
-
- #######################################
-@@ -444,6 +534,7 @@ interface(`sysnet_delete_dhcpc_pid',`
+@@ -444,6 +538,7 @@ interface(`sysnet_delete_dhcpc_pid',`
type dhcpc_var_run_t;
')
@@ -46229,7 +46675,7 @@ index 8e71fb7..350d003 100644
allow $1 dhcpc_var_run_t:file unlink;
')
-@@ -464,6 +555,10 @@ interface(`sysnet_domtrans_ifconfig',`
+@@ -464,6 +559,10 @@ interface(`sysnet_domtrans_ifconfig',`
corecmd_search_bin($1)
domtrans_pattern($1, ifconfig_exec_t, ifconfig_t)
@@ -46240,7 +46686,7 @@ index 8e71fb7..350d003 100644
')
########################################
-@@ -534,6 +629,25 @@ interface(`sysnet_signal_ifconfig',`
+@@ -534,6 +633,25 @@ interface(`sysnet_signal_ifconfig',`
########################################
##
@@ -46266,26 +46712,29 @@ index 8e71fb7..350d003 100644
## Read the DHCP configuration files.
##
##
-@@ -677,7 +791,10 @@ interface(`sysnet_use_ldap',`
- corenet_tcp_connect_ldap_port($1)
+@@ -641,6 +759,8 @@ interface(`sysnet_dns_name_resolve',`
+ corenet_tcp_connect_dns_port($1)
+ corenet_sendrecv_dns_client_packets($1)
+
++ miscfiles_read_generic_certs($1)
++
+ sysnet_read_config($1)
+
+ optional_policy(`
+@@ -678,6 +798,9 @@ interface(`sysnet_use_ldap',`
corenet_sendrecv_ldap_client_packets($1)
-- sysnet_read_config($1)
-+ files_search_etc($1)
-+ allow $1 net_conf_t:file read_file_perms;
+ sysnet_read_config($1)
++
+ # LDAP Configuration using encrypted requires
+ dev_read_urand($1)
')
########################################
-@@ -709,5 +826,52 @@ interface(`sysnet_use_portmap',`
- corenet_tcp_connect_portmap_port($1)
- corenet_sendrecv_portmap_client_packets($1)
+@@ -711,3 +834,49 @@ interface(`sysnet_use_portmap',`
-- sysnet_read_config($1)
-+ files_search_etc($1)
-+ allow $1 net_conf_t:file read_file_perms;
-+')
+ sysnet_read_config($1)
+ ')
+
+########################################
+##
@@ -46331,7 +46780,7 @@ index 8e71fb7..350d003 100644
+ ')
+
+ role_transition $1 dhcpc_exec_t system_r;
- ')
++')
diff --git a/policy/modules/system/sysnetwork.te b/policy/modules/system/sysnetwork.te
index dfbe736..d8c6f24 100644
--- a/policy/modules/system/sysnetwork.te
@@ -46650,7 +47099,7 @@ index 0000000..5f0352b
+
diff --git a/policy/modules/system/systemd.te b/policy/modules/system/systemd.te
new file mode 100644
-index 0000000..a74c435
+index 0000000..24f8c6f
--- /dev/null
+++ b/policy/modules/system/systemd.te
@@ -0,0 +1,98 @@
@@ -46721,7 +47170,7 @@ index 0000000..a74c435
+files_manage_all_locks(systemd_tmpfiles_t)
+files_setattr_all_tmp_dirs(systemd_tmpfiles_t)
+files_unlink_all_pid_sockets(systemd_tmpfiles_t)
-+
++files_delete_boot_flag(systemd_tmpfiles_t)
+files_purge_tmp(systemd_tmpfiles_t)
+files_manage_generic_tmp_files(systemd_tmpfiles_t)
+files_manage_generic_tmp_dirs(systemd_tmpfiles_t)
diff --git a/selinux-policy.spec b/selinux-policy.spec
index e7330e31..99148d8d 100644
--- a/selinux-policy.spec
+++ b/selinux-policy.spec
@@ -471,6 +471,17 @@ exit 0
%endif
%changelog
+* Tue Dec 21 2010 Miroslav Grepl 3.9.12-1
+- Update to upstream
+- Fixes for systemd policy
+- Fixes for passenger policy
+- Allow staff users to run mysqld in the staff_t domain, akonadi needs this
+- Add bin_t label for /usr/share/kde4/apps/kajongg/kajongg.py
+- auth_use_nsswitch does not need avahi to read passwords,needed for resolving data
+- Dontaudit (xdm_t) gok attempting to list contents of /var/account
+- Telepathy domains need to read urand
+- Need interface to getattr all file classes in a mock library for setroubleshoot
+
* Wed Dec 15 2010 Dan Walsh 3.9.11-2
- Update selinux policy to handle new /usr/share/sandbox/start script