##
@@ -832,9 +847,20 @@ index 0f57d3b..655d07f 100644
########################################
diff --git a/policy/modules/admin/consoletype.te b/policy/modules/admin/consoletype.te
-index cd5e005..50e9ee4 100644
+index cd5e005..72417f5 100644
--- a/policy/modules/admin/consoletype.te
+++ b/policy/modules/admin/consoletype.te
+@@ -7,8 +7,8 @@ policy_module(consoletype, 1.10.0)
+
+ type consoletype_t;
+ type consoletype_exec_t;
+-init_domain(consoletype_t, consoletype_exec_t)
+-init_system_domain(consoletype_t, consoletype_exec_t)
++application_domain(consoletype_t, consoletype_exec_t)
++role system_r types consoletype_t;
+
+ ########################################
+ #
@@ -47,14 +47,16 @@ fs_list_inotifyfs(consoletype_t)
mls_file_read_all_levels(consoletype_t)
mls_file_write_all_levels(consoletype_t)
@@ -1058,7 +1084,7 @@ index 8fa451c..f3a67c9 100644
')
diff --git a/policy/modules/admin/firstboot.te b/policy/modules/admin/firstboot.te
-index c4d8998..f808287 100644
+index c4d8998..bd59f2e 100644
--- a/policy/modules/admin/firstboot.te
+++ b/policy/modules/admin/firstboot.te
@@ -19,6 +19,9 @@ role system_r types firstboot_t;
@@ -1106,7 +1132,18 @@ index c4d8998..f808287 100644
# Add/remove user home directories
userdom_manage_user_home_content_dirs(firstboot_t)
userdom_manage_user_home_content_files(firstboot_t)
-@@ -103,8 +109,18 @@ optional_policy(`
+@@ -91,10 +97,6 @@ userdom_home_filetrans_user_home_dir(firstboot_t)
+ userdom_user_home_dir_filetrans_user_home_content(firstboot_t, { dir file lnk_file fifo_file sock_file })
+
+ optional_policy(`
+- consoletype_domtrans(firstboot_t)
+-')
+-
+-optional_policy(`
+ dbus_system_bus_client(firstboot_t)
+
+ optional_policy(`
+@@ -103,8 +105,18 @@ optional_policy(`
')
optional_policy(`
@@ -1125,7 +1162,7 @@ index c4d8998..f808287 100644
optional_policy(`
samba_rw_config(firstboot_t)
-@@ -113,7 +129,7 @@ optional_policy(`
+@@ -113,7 +125,7 @@ optional_policy(`
optional_policy(`
unconfined_domtrans(firstboot_t)
# The big hammer
@@ -1134,7 +1171,7 @@ index c4d8998..f808287 100644
')
optional_policy(`
-@@ -125,6 +141,7 @@ optional_policy(`
+@@ -125,6 +137,7 @@ optional_policy(`
')
optional_policy(`
@@ -1142,7 +1179,7 @@ index c4d8998..f808287 100644
gnome_manage_config(firstboot_t)
')
-@@ -132,4 +149,5 @@ optional_policy(`
+@@ -132,4 +145,5 @@ optional_policy(`
xserver_domtrans(firstboot_t)
xserver_rw_shm(firstboot_t)
xserver_unconfined(firstboot_t)
@@ -1161,7 +1198,7 @@ index c66934f..1aa1205 100644
/sbin/kdump -- gen_context(system_u:object_r:kdump_exec_t,s0)
/sbin/kexec -- gen_context(system_u:object_r:kdump_exec_t,s0)
diff --git a/policy/modules/admin/kdump.if b/policy/modules/admin/kdump.if
-index 4198ff5..a296bfa 100644
+index 4198ff5..419c7a9 100644
--- a/policy/modules/admin/kdump.if
+++ b/policy/modules/admin/kdump.if
@@ -37,6 +37,30 @@ interface(`kdump_initrc_domtrans',`
@@ -1220,6 +1257,19 @@ index 4198ff5..a296bfa 100644
####################################
##
## Manage kdump configuration file.
+@@ -98,8 +140,11 @@ interface(`kdump_admin',`
+ type kdump_initrc_exec_t;
+ ')
+
+- allow $1 kdump_t:process { ptrace signal_perms };
++ allow $1 kdump_t:process signal_perms;
+ ps_process_pattern($1, kdump_t)
++ tunable_policy(`deny_ptrace',`',`
++ allow $1 kdump_t:process ptrace;
++ ')
+
+ init_labeled_script_domtrans($1, kdump_initrc_exec_t)
+ domain_system_change_exemption($1)
diff --git a/policy/modules/admin/kdump.te b/policy/modules/admin/kdump.te
index b29d8e2..bcd9273 100644
--- a/policy/modules/admin/kdump.te
@@ -1234,6 +1284,22 @@ index b29d8e2..bcd9273 100644
#####################################
#
# kdump local policy
+diff --git a/policy/modules/admin/kismet.if b/policy/modules/admin/kismet.if
+index c18c920..582f7f3 100644
+--- a/policy/modules/admin/kismet.if
++++ b/policy/modules/admin/kismet.if
+@@ -239,7 +239,10 @@ interface(`kismet_admin',`
+ ')
+
+ ps_process_pattern($1, kismet_t)
+- allow $1 kismet_t:process { ptrace signal_perms };
++ allow $1 kismet_t:process signal_perms;
++ tunable_policy(`deny_ptrace',`',`
++ allow $1 kismet_t:process ptrace;
++ ')
+
+ kismet_manage_pid_files($1)
+ kismet_manage_lib($1)
diff --git a/policy/modules/admin/kismet.te b/policy/modules/admin/kismet.te
index 9dd6880..4b7fa27 100644
--- a/policy/modules/admin/kismet.te
@@ -1248,9 +1314,18 @@ index 9dd6880..4b7fa27 100644
optional_policy(`
diff --git a/policy/modules/admin/kudzu.te b/policy/modules/admin/kudzu.te
-index 4f7bd3c..a29af21 100644
+index 4f7bd3c..9143343 100644
--- a/policy/modules/admin/kudzu.te
+++ b/policy/modules/admin/kudzu.te
+@@ -20,7 +20,7 @@ files_pid_file(kudzu_var_run_t)
+ # Local policy
+ #
+
+-allow kudzu_t self:capability { dac_override sys_admin sys_ptrace sys_rawio net_admin sys_tty_config mknod };
++allow kudzu_t self:capability { dac_override sys_admin sys_rawio net_admin sys_tty_config mknod };
+ dontaudit kudzu_t self:capability sys_tty_config;
+ allow kudzu_t self:process { signal_perms execmem };
+ allow kudzu_t self:fifo_file rw_fifo_file_perms;
@@ -111,15 +111,10 @@ logging_send_syslog_msg(kudzu_t)
miscfiles_read_hwdata(kudzu_t)
miscfiles_read_localization(kudzu_t)
@@ -1288,22 +1363,21 @@ index 4f7bd3c..a29af21 100644
- unconfined_domain(kudzu_t)
')
diff --git a/policy/modules/admin/logrotate.te b/policy/modules/admin/logrotate.te
-index 7090dae..98f0a2e 100644
+index 7090dae..a2512aa 100644
--- a/policy/modules/admin/logrotate.te
+++ b/policy/modules/admin/logrotate.te
-@@ -29,9 +29,9 @@ files_type(logrotate_var_lib_t)
+@@ -29,9 +29,7 @@ files_type(logrotate_var_lib_t)
#
# Change ownership on log files.
-allow logrotate_t self:capability { chown dac_override dac_read_search kill fsetid fowner sys_resource sys_nice };
-+allow logrotate_t self:capability { chown dac_override dac_read_search kill fsetid fowner setuid setgid sys_resource sys_nice };
- # for mailx
+-# for mailx
-dontaudit logrotate_t self:capability { setuid setgid sys_ptrace };
-+dontaudit logrotate_t self:capability { sys_ptrace };
++allow logrotate_t self:capability { chown dac_override dac_read_search kill fsetid fowner setuid setgid sys_resource sys_nice };
allow logrotate_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimit execmem execstack execheap };
-@@ -39,6 +39,7 @@ allow logrotate_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimi
+@@ -39,6 +37,7 @@ allow logrotate_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimi
allow logrotate_t self:process setfscreate;
allow logrotate_t self:fd use;
@@ -1311,7 +1385,7 @@ index 7090dae..98f0a2e 100644
allow logrotate_t self:fifo_file rw_fifo_file_perms;
allow logrotate_t self:unix_dgram_socket create_socket_perms;
allow logrotate_t self:unix_stream_socket create_stream_socket_perms;
-@@ -61,6 +62,7 @@ files_tmp_filetrans(logrotate_t, logrotate_tmp_t, { file dir })
+@@ -61,6 +60,7 @@ files_tmp_filetrans(logrotate_t, logrotate_tmp_t, { file dir })
# for /var/lib/logrotate.status and /var/lib/logcheck
create_dirs_pattern(logrotate_t, logrotate_var_lib_t, logrotate_var_lib_t)
manage_files_pattern(logrotate_t, logrotate_var_lib_t, logrotate_var_lib_t)
@@ -1319,7 +1393,15 @@ index 7090dae..98f0a2e 100644
files_var_lib_filetrans(logrotate_t, logrotate_var_lib_t, file)
kernel_read_system_state(logrotate_t)
-@@ -102,6 +104,7 @@ files_read_var_lib_files(logrotate_t)
+@@ -75,6 +75,7 @@ fs_list_inotifyfs(logrotate_t)
+ mls_file_read_all_levels(logrotate_t)
+ mls_file_write_all_levels(logrotate_t)
+ mls_file_upgrade(logrotate_t)
++mls_process_write_to_clearance(logrotate_t)
+
+ selinux_get_fs_mount(logrotate_t)
+ selinux_get_enforce_mode(logrotate_t)
+@@ -102,6 +103,7 @@ files_read_var_lib_files(logrotate_t)
files_manage_generic_spool(logrotate_t)
files_manage_generic_spool_dirs(logrotate_t)
files_getattr_generic_locks(logrotate_t)
@@ -1327,7 +1409,7 @@ index 7090dae..98f0a2e 100644
# cjp: why is this needed?
init_domtrans_script(logrotate_t)
-@@ -116,17 +119,15 @@ miscfiles_read_localization(logrotate_t)
+@@ -116,17 +118,15 @@ miscfiles_read_localization(logrotate_t)
seutil_dontaudit_read_config(logrotate_t)
@@ -1350,7 +1432,7 @@ index 7090dae..98f0a2e 100644
# for savelog
can_exec(logrotate_t, logrotate_exec_t)
-@@ -138,7 +139,7 @@ ifdef(`distro_debian', `
+@@ -138,7 +138,7 @@ ifdef(`distro_debian', `
')
optional_policy(`
@@ -1359,7 +1441,7 @@ index 7090dae..98f0a2e 100644
')
optional_policy(`
-@@ -154,6 +155,10 @@ optional_policy(`
+@@ -154,6 +154,10 @@ optional_policy(`
')
optional_policy(`
@@ -1370,7 +1452,7 @@ index 7090dae..98f0a2e 100644
asterisk_domtrans(logrotate_t)
')
-@@ -162,10 +167,20 @@ optional_policy(`
+@@ -162,10 +166,20 @@ optional_policy(`
')
optional_policy(`
@@ -1391,7 +1473,7 @@ index 7090dae..98f0a2e 100644
cups_domtrans(logrotate_t)
')
-@@ -200,9 +215,12 @@ optional_policy(`
+@@ -200,9 +214,12 @@ optional_policy(`
')
optional_policy(`
@@ -1405,7 +1487,7 @@ index 7090dae..98f0a2e 100644
optional_policy(`
samba_exec_log(logrotate_t)
-@@ -228,3 +246,14 @@ optional_policy(`
+@@ -228,3 +245,14 @@ optional_policy(`
optional_policy(`
varnishd_manage_log(logrotate_t)
')
@@ -1532,7 +1614,7 @@ index 56c43c0..0641226 100644
+
+/var/run/mcelog-client -s gen_context(system_u:object_r:mcelog_var_run_t,s0)
diff --git a/policy/modules/admin/mcelog.te b/policy/modules/admin/mcelog.te
-index 5671977..ef8bc09 100644
+index 5671977..ea06507 100644
--- a/policy/modules/admin/mcelog.te
+++ b/policy/modules/admin/mcelog.te
@@ -7,8 +7,14 @@ policy_module(mcelog, 1.1.0)
@@ -1551,7 +1633,7 @@ index 5671977..ef8bc09 100644
########################################
#
-@@ -17,10 +23,22 @@ cron_system_entry(mcelog_t, mcelog_exec_t)
+@@ -17,16 +23,34 @@ cron_system_entry(mcelog_t, mcelog_exec_t)
allow mcelog_t self:capability sys_admin;
@@ -1574,7 +1656,11 @@ index 5671977..ef8bc09 100644
files_read_etc_files(mcelog_t)
-@@ -30,3 +48,7 @@ mls_file_read_all_levels(mcelog_t)
+ # for /dev/mem access
+ mls_file_read_all_levels(mcelog_t)
+
++auth_read_passwd(mcelog_t)
++
logging_send_syslog_msg(mcelog_t)
miscfiles_read_localization(mcelog_t)
@@ -1648,14 +1734,15 @@ index 75ee31d..a28ab46 100644
+ allow $2 ncftool_t:process signal;
+')
diff --git a/policy/modules/admin/ncftool.te b/policy/modules/admin/ncftool.te
-index ec29391..b25d59a 100644
+index ec29391..28c9672 100644
--- a/policy/modules/admin/ncftool.te
+++ b/policy/modules/admin/ncftool.te
-@@ -18,9 +18,13 @@ role system_r types ncftool_t;
+@@ -17,10 +17,13 @@ role system_r types ncftool_t;
+ # ncftool local policy
#
- allow ncftool_t self:capability { net_admin sys_ptrace };
-+
+-allow ncftool_t self:capability { net_admin sys_ptrace };
++allow ncftool_t self:capability net_admin;
allow ncftool_t self:process signal;
+
allow ncftool_t self:fifo_file manage_fifo_file_perms;
@@ -1665,7 +1752,7 @@ index ec29391..b25d59a 100644
allow ncftool_t self:tcp_socket create_stream_socket_perms;
allow ncftool_t self:netlink_route_socket create_netlink_socket_perms;
-@@ -38,10 +42,14 @@ domain_read_all_domains_state(ncftool_t)
+@@ -38,10 +41,14 @@ domain_read_all_domains_state(ncftool_t)
dev_read_sysfs(ncftool_t)
@@ -1680,7 +1767,7 @@ index ec29391..b25d59a 100644
miscfiles_read_localization(ncftool_t)
sysnet_delete_dhcpc_pid(ncftool_t)
-@@ -50,6 +58,8 @@ sysnet_domtrans_ifconfig(ncftool_t)
+@@ -50,6 +57,8 @@ sysnet_domtrans_ifconfig(ncftool_t)
sysnet_etc_filetrans_config(ncftool_t)
sysnet_manage_config(ncftool_t)
sysnet_read_dhcpc_state(ncftool_t)
@@ -1689,7 +1776,7 @@ index ec29391..b25d59a 100644
sysnet_read_dhcpc_pid(ncftool_t)
sysnet_signal_dhcpc(ncftool_t)
-@@ -66,6 +76,7 @@ optional_policy(`
+@@ -66,6 +75,7 @@ optional_policy(`
optional_policy(`
iptables_initrc_domtrans(ncftool_t)
@@ -1949,358 +2036,19 @@ index 0000000..bd83148
+## No Interfaces
diff --git a/policy/modules/admin/permissivedomains.te b/policy/modules/admin/permissivedomains.te
new file mode 100644
-index 0000000..0bd2028
+index 0000000..9c8b64f
--- /dev/null
+++ b/policy/modules/admin/permissivedomains.te
-@@ -0,0 +1,349 @@
-+policy_module(permissivedomains,16)
-+
-+optional_policy(`
-+ gen_require(`
-+ type polipo_t;
-+ ')
-+
-+ permissive polipo_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type pptp_t;
-+ ')
-+
-+ permissive pptp_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type quota_nld_t;
-+ ')
-+
-+ permissive quota_nld_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type bootloader_t;
-+ ')
-+
-+ permissive bootloader_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type systemd_logger_t;
-+ ')
-+
-+ permissive systemd_logger_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type systemd_logind_t;
-+ ')
-+
-+ permissive systemd_logind_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type fcoemon_t;
-+ ')
-+
-+ permissive fcoemon_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type httpd_passwd_t;
-+ ')
-+
-+ permissive httpd_passwd_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type puppetca_t;
-+ ')
-+
-+ permissive puppetca_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type spamd_update_t;
-+ ')
-+
-+ permissive spamd_update_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type rhev_agentd_t;
-+ ')
-+
-+ permissive rhev_agentd_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type abrt_handle_event_t;
-+ ')
-+
-+ permissive abrt_handle_event_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type cfengine_serverd_t;
-+ ')
-+
-+ permissive cfengine_serverd_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type cfengine_execd_t;
-+ ')
-+
-+ permissive cfengine_execd_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type cfengine_monitord_t;
-+ ')
-+
-+ permissive cfengine_monitord_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type rhsmcertd_t;
-+ ')
-+
-+ permissive rhsmcertd_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type sshd_sandbox_t;
-+ ')
-+
-+ permissive sshd_sandbox_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type fail2ban_client_t;
-+ ')
-+
-+ permissive fail2ban_client_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type ctdbd_t;
-+ ')
-+
-+ permissive ctdbd_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type mscan_t;
-+ ')
-+
-+ permissive mscan_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type lldpad_t;
-+ ')
-+
-+ permissive lldpad_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type nova_ajax_t;
-+ type nova_api_t;
-+ type nova_compute_t;
-+ type nova_direct_t;
-+ type nova_network_t;
-+ type nova_objectstore_t;
-+ type nova_scheduler_t;
-+ type nova_vncproxy_t;
-+ type nova_volume_t;
-+ ')
-+
-+ permissive nova_ajax_t;
-+ permissive nova_api_t;
-+ permissive nova_compute_t;
-+ permissive nova_direct_t;
-+ permissive nova_network_t;
-+ permissive nova_objectstore_t;
-+ permissive nova_scheduler_t;
-+ permissive nova_vncproxy_t;
-+ permissive nova_volume_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type rabbitmq_epmd_t;
-+ type rabbitmq_beam_t;
-+ ')
-+
-+ permissive rabbitmq_epmd_t;
-+ permissive rabbitmq_beam_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type sblim_gatherd_t;
-+ ')
-+
-+ permissive sblim_gatherd_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type sblim_gatherd_t;
-+ ')
-+
-+ permissive sblim_gatherd_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type callweaver_t;
-+ ')
-+
-+ permissive callweaver_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type sanlock_t;
-+ ')
-+
-+ permissive sanlock_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type uuidd_t;
-+ ')
-+
-+ permissive uuidd_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type wdmd_t;
-+ ')
-+
-+ permissive wdmd_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type dspam_t;
-+ ')
-+
-+ permissive dspam_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type virt_lxc_t;
-+ ')
-+
-+ permissive virt_lxc_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type virtd_t;
-+ ')
-+
-+ permissive virtd_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type pyicqt_t;
-+ ')
-+
-+ permissive pyicqt_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type telepathy_logger_t;
-+ ')
-+
-+ permissive telepathy_logger_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type glance_registry_t;
-+ type glance_api_t;
-+ ')
-+
-+ permissive glance_registry_t;
-+ permissive glance_api_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type thumb_t;
-+ ')
-+
-+ permissive thumb_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type virt_qmf_t;
-+ ')
-+
-+ permissive virt_qmf_t;
-+')
-+
-+# for cloudform daemons
-+
-+optional_policy(`
-+ gen_require(`
-+ type deltacloudd_t;
-+ type iwhd_t;
-+ type mongod_t;
-+ type thin_t;
-+ ')
-+
-+ permissive deltacloudd_t;
-+ permissive iwhd_t;
-+ permissive mongod_t;
-+ permissive thin_t;
-+')
-+
-+optional_policy(`
-+ gen_require(`
-+ type chrome_sandbox_nacl_t;
-+ ')
+@@ -0,0 +1,10 @@
++policy_module(permissivedomains,17)
+
-+ permissive chrome_sandbox_nacl_t;
-+')
+
+optional_policy(`
+ gen_require(`
-+ type matahari_sysconfigd_t;
++ type blueman_t;
+ ')
+
-+ permissive matahari_sysconfigd_t;
++ permissive blueman_t;
+')
diff --git a/policy/modules/admin/portage.fc b/policy/modules/admin/portage.fc
index db46387..b665b08 100644
@@ -3042,7 +2790,7 @@ index d33daa8..8ba0f86 100644
+ allow rpm_script_t $1:process sigchld;
+')
diff --git a/policy/modules/admin/rpm.te b/policy/modules/admin/rpm.te
-index 47a8f7d..4b78d5b 100644
+index 47a8f7d..17b5426 100644
--- a/policy/modules/admin/rpm.te
+++ b/policy/modules/admin/rpm.te
@@ -1,10 +1,11 @@
@@ -3163,7 +2911,17 @@ index 47a8f7d..4b78d5b 100644
# yum-updatesd requires this
unconfined_dbus_chat(rpm_t)
unconfined_dbus_chat(rpm_script_t)
-@@ -257,12 +282,18 @@ manage_sock_files_pattern(rpm_script_t, rpm_script_tmpfs_t, rpm_script_tmpfs_t)
+@@ -225,7 +250,8 @@ optional_policy(`
+ # rpm-script Local policy
+ #
+
+-allow rpm_script_t self:capability { chown dac_override dac_read_search fowner fsetid setgid setuid ipc_lock sys_admin sys_chroot sys_ptrace sys_rawio sys_nice mknod kill net_admin };
++allow rpm_script_t self:capability { chown dac_override dac_read_search fowner fsetid setgid setuid ipc_lock sys_admin sys_chroot sys_rawio sys_nice mknod kill net_admin };
++
+ allow rpm_script_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimit execheap };
+ allow rpm_script_t self:fd use;
+ allow rpm_script_t self:fifo_file rw_fifo_file_perms;
+@@ -257,12 +283,18 @@ manage_sock_files_pattern(rpm_script_t, rpm_script_tmpfs_t, rpm_script_tmpfs_t)
fs_tmpfs_filetrans(rpm_script_t, rpm_script_tmpfs_t, { dir file lnk_file sock_file fifo_file })
can_exec(rpm_script_t, rpm_script_tmpfs_t)
@@ -3182,7 +2940,7 @@ index 47a8f7d..4b78d5b 100644
dev_list_sysfs(rpm_script_t)
# ideally we would not need this
-@@ -299,15 +330,17 @@ storage_raw_write_fixed_disk(rpm_script_t)
+@@ -299,15 +331,17 @@ storage_raw_write_fixed_disk(rpm_script_t)
term_getattr_unallocated_ttys(rpm_script_t)
term_list_ptys(rpm_script_t)
@@ -3203,7 +2961,7 @@ index 47a8f7d..4b78d5b 100644
domain_read_all_domains_state(rpm_script_t)
domain_getattr_all_domains(rpm_script_t)
-@@ -331,19 +364,20 @@ libs_domtrans_ldconfig(rpm_script_t)
+@@ -331,23 +365,24 @@ libs_domtrans_ldconfig(rpm_script_t)
logging_send_syslog_msg(rpm_script_t)
miscfiles_read_localization(rpm_script_t)
@@ -3227,7 +2985,12 @@ index 47a8f7d..4b78d5b 100644
')
')
-@@ -368,6 +402,11 @@ optional_policy(`
+-tunable_policy(`allow_execmem',`
++tunable_policy(`deny_execmem',`',`
+ allow rpm_script_t self:process execmem;
+ ')
+
+@@ -368,6 +403,11 @@ optional_policy(`
')
optional_policy(`
@@ -3239,7 +3002,7 @@ index 47a8f7d..4b78d5b 100644
tzdata_domtrans(rpm_t)
tzdata_domtrans(rpm_script_t)
')
-@@ -377,8 +416,9 @@ optional_policy(`
+@@ -377,8 +417,9 @@ optional_policy(`
')
optional_policy(`
@@ -3251,9 +3014,18 @@ index 47a8f7d..4b78d5b 100644
optional_policy(`
java_domtrans_unconfined(rpm_script_t)
diff --git a/policy/modules/admin/sectoolm.te b/policy/modules/admin/sectoolm.te
-index c8ef84b..40ceffb 100644
+index c8ef84b..eb4bd05 100644
--- a/policy/modules/admin/sectoolm.te
+++ b/policy/modules/admin/sectoolm.te
+@@ -23,7 +23,7 @@ files_tmp_file(sectool_tmp_t)
+ # sectool local policy
+ #
+
+-allow sectoolm_t self:capability { dac_override net_admin sys_nice sys_ptrace };
++allow sectoolm_t self:capability { dac_override net_admin sys_nice };
+ allow sectoolm_t self:process { getcap getsched signull setsched };
+ dontaudit sectoolm_t self:process { execstack execmem };
+ allow sectoolm_t self:fifo_file rw_fifo_file_perms;
@@ -70,12 +70,6 @@ application_exec_all(sectoolm_t)
auth_use_nsswitch(sectoolm_t)
@@ -3286,7 +3058,7 @@ index c8ef84b..40ceffb 100644
optional_policy(`
mount_exec(sectoolm_t)
diff --git a/policy/modules/admin/shorewall.if b/policy/modules/admin/shorewall.if
-index 781ad7e..082f0c5 100644
+index 781ad7e..f7b8881 100644
--- a/policy/modules/admin/shorewall.if
+++ b/policy/modules/admin/shorewall.if
@@ -55,28 +55,9 @@ interface(`shorewall_read_config',`
@@ -3367,10 +3139,32 @@ index 781ad7e..082f0c5 100644
##
#
interface(`shorewall_rw_lib_files',`
+@@ -177,8 +139,11 @@ interface(`shorewall_admin',`
+ type shorewall_tmp_t, shorewall_etc_t;
+ ')
+
+- allow $1 shorewall_t:process { ptrace signal_perms };
++ allow $1 shorewall_t:process signal_perms;
+ ps_process_pattern($1, shorewall_t)
++ tunable_policy(`deny_ptrace',`',`
++ allow $1 shorewall_t:process ptrace;
++ ')
+
+ init_labeled_script_domtrans($1, shorewall_initrc_exec_t)
+ domain_system_change_exemption($1)
diff --git a/policy/modules/admin/shorewall.te b/policy/modules/admin/shorewall.te
-index 95bce88..1a53b7b 100644
+index 95bce88..95065c3 100644
--- a/policy/modules/admin/shorewall.te
+++ b/policy/modules/admin/shorewall.te
+@@ -37,7 +37,7 @@ logging_log_file(shorewall_log_t)
+ # shorewall local policy
+ #
+
+-allow shorewall_t self:capability { dac_override net_admin net_raw setuid setgid sys_nice sys_ptrace };
++allow shorewall_t self:capability { dac_override net_admin net_raw setuid setgid sys_nice };
+ dontaudit shorewall_t self:capability sys_tty_config;
+ allow shorewall_t self:fifo_file rw_fifo_file_perms;
+
@@ -59,6 +59,9 @@ exec_files_pattern(shorewall_t, shorewall_var_lib_t, shorewall_var_lib_t)
manage_dirs_pattern(shorewall_t, shorewall_var_lib_t, shorewall_var_lib_t)
manage_files_pattern(shorewall_t, shorewall_var_lib_t, shorewall_var_lib_t)
@@ -3640,9 +3434,18 @@ index 94c01b5..f64bd93 100644
########################################
diff --git a/policy/modules/admin/sosreport.te b/policy/modules/admin/sosreport.te
-index fe1c377..bedbb9b 100644
+index fe1c377..724df48 100644
--- a/policy/modules/admin/sosreport.te
+++ b/policy/modules/admin/sosreport.te
+@@ -21,7 +21,7 @@ files_tmpfs_file(sosreport_tmpfs_t)
+ # sosreport local policy
+ #
+
+-allow sosreport_t self:capability { kill net_admin net_raw setuid sys_admin sys_nice sys_ptrace dac_override };
++allow sosreport_t self:capability { kill net_admin net_raw setuid sys_admin sys_nice dac_override };
+ allow sosreport_t self:process { setsched signull };
+ allow sosreport_t self:fifo_file rw_fifo_file_perms;
+ allow sosreport_t self:tcp_socket create_stream_socket_perms;
@@ -74,13 +74,17 @@ files_read_all_symlinks(sosreport_t)
# for blkid.tab
files_manage_etc_runtime_files(sosreport_t)
@@ -4056,7 +3859,7 @@ index d5aaf0e..6b16aef 100644
optional_policy(`
mta_send_mail(sxid_t)
diff --git a/policy/modules/admin/tmpreaper.te b/policy/modules/admin/tmpreaper.te
-index 6a5004b..90cf622 100644
+index 6a5004b..70d684a 100644
--- a/policy/modules/admin/tmpreaper.te
+++ b/policy/modules/admin/tmpreaper.te
@@ -7,6 +7,7 @@ policy_module(tmpreaper, 1.5.0)
@@ -4067,7 +3870,16 @@ index 6a5004b..90cf622 100644
application_domain(tmpreaper_t, tmpreaper_exec_t)
role system_r types tmpreaper_t;
-@@ -25,11 +26,16 @@ fs_getattr_xattr_fs(tmpreaper_t)
+@@ -18,6 +19,8 @@ role system_r types tmpreaper_t;
+ allow tmpreaper_t self:process { fork sigchld };
+ allow tmpreaper_t self:capability { dac_override dac_read_search fowner };
+
++kernel_read_system_state(tmpreaper_t)
++
+ dev_read_urand(tmpreaper_t)
+
+ fs_getattr_xattr_fs(tmpreaper_t)
+@@ -25,11 +28,16 @@ fs_getattr_xattr_fs(tmpreaper_t)
files_read_etc_files(tmpreaper_t)
files_read_var_lib_files(tmpreaper_t)
files_purge_tmp(tmpreaper_t)
@@ -4084,7 +3896,7 @@ index 6a5004b..90cf622 100644
mls_file_read_all_levels(tmpreaper_t)
mls_file_write_all_levels(tmpreaper_t)
-@@ -38,13 +44,17 @@ logging_send_syslog_msg(tmpreaper_t)
+@@ -38,13 +46,17 @@ logging_send_syslog_msg(tmpreaper_t)
miscfiles_read_localization(tmpreaper_t)
miscfiles_delete_man_pages(tmpreaper_t)
@@ -4106,7 +3918,7 @@ index 6a5004b..90cf622 100644
')
optional_policy(`
-@@ -52,7 +62,9 @@ optional_policy(`
+@@ -52,7 +64,9 @@ optional_policy(`
')
optional_policy(`
@@ -4116,7 +3928,7 @@ index 6a5004b..90cf622 100644
apache_delete_cache_files(tmpreaper_t)
apache_setattr_cache_dirs(tmpreaper_t)
')
-@@ -66,9 +78,13 @@ optional_policy(`
+@@ -66,9 +80,13 @@ optional_policy(`
')
optional_policy(`
@@ -4382,7 +4194,7 @@ index 81fb26f..66cf96c 100644
##
##
diff --git a/policy/modules/admin/usermanage.te b/policy/modules/admin/usermanage.te
-index 441cf22..cd9d876 100644
+index 441cf22..cc0406f 100644
--- a/policy/modules/admin/usermanage.te
+++ b/policy/modules/admin/usermanage.te
@@ -71,6 +71,7 @@ allow chfn_t self:unix_stream_socket connectto;
@@ -4393,7 +4205,7 @@ index 441cf22..cd9d876 100644
selinux_get_fs_mount(chfn_t)
selinux_validate_context(chfn_t)
-@@ -79,18 +80,18 @@ selinux_compute_create_context(chfn_t)
+@@ -79,25 +80,25 @@ selinux_compute_create_context(chfn_t)
selinux_compute_relabel_context(chfn_t)
selinux_compute_user_contexts(chfn_t)
@@ -4413,10 +4225,18 @@ index 441cf22..cd9d876 100644
-auth_domtrans_chk_passwd(chfn_t)
-auth_dontaudit_read_shadow(chfn_t)
-auth_use_nsswitch(chfn_t)
++auth_manage_passwd(chfn_t)
+auth_use_pam(chfn_t)
# allow checking if a shell is executable
corecmd_check_exec_shell(chfn_t)
+
+ domain_use_interactive_fds(chfn_t)
+
+-files_manage_etc_files(chfn_t)
+ files_read_etc_runtime_files(chfn_t)
+ files_dontaudit_search_var(chfn_t)
+ files_dontaudit_search_home(chfn_t)
@@ -105,6 +106,7 @@ files_dontaudit_search_home(chfn_t)
# /usr/bin/passwd asks for w access to utmp, but it will operate
# correctly without it. Do not audit write denials to utmp.
@@ -4447,7 +4267,29 @@ index 441cf22..cd9d876 100644
init_use_fds(groupadd_t)
init_read_utmp(groupadd_t)
-@@ -277,6 +283,7 @@ kernel_read_kernel_sysctls(passwd_t)
+@@ -203,8 +209,8 @@ init_dontaudit_write_utmp(groupadd_t)
+
+ domain_use_interactive_fds(groupadd_t)
+
+-files_manage_etc_files(groupadd_t)
+ files_relabel_etc_files(groupadd_t)
++files_read_etc_files(groupadd_t)
+ files_read_etc_runtime_files(groupadd_t)
+ files_read_usr_symlinks(groupadd_t)
+
+@@ -219,9 +225,10 @@ miscfiles_read_localization(groupadd_t)
+ auth_domtrans_chk_passwd(groupadd_t)
+ auth_rw_lastlog(groupadd_t)
+ auth_use_nsswitch(groupadd_t)
++auth_manage_passwd(groupadd_t)
++auth_manage_shadow(groupadd_t)
+ # these may be unnecessary due to the above
+ # domtrans_chk_passwd() call.
+-auth_manage_shadow(groupadd_t)
+ auth_relabel_shadow(groupadd_t)
+ auth_etc_filetrans_shadow(groupadd_t)
+
+@@ -277,6 +284,7 @@ kernel_read_kernel_sysctls(passwd_t)
# for SSP
dev_read_urand(passwd_t)
@@ -4455,7 +4297,7 @@ index 441cf22..cd9d876 100644
fs_getattr_xattr_fs(passwd_t)
fs_search_auto_mountpoints(passwd_t)
-@@ -291,17 +298,19 @@ selinux_compute_create_context(passwd_t)
+@@ -291,26 +299,30 @@ selinux_compute_create_context(passwd_t)
selinux_compute_relabel_context(passwd_t)
selinux_compute_user_contexts(passwd_t)
@@ -4465,6 +4307,7 @@ index 441cf22..cd9d876 100644
+term_getattr_all_ptys(passwd_t)
-auth_domtrans_chk_passwd(passwd_t)
++auth_manage_passwd(passwd_t)
auth_manage_shadow(passwd_t)
auth_relabel_shadow(passwd_t)
auth_etc_filetrans_shadow(passwd_t)
@@ -4479,7 +4322,9 @@ index 441cf22..cd9d876 100644
domain_use_interactive_fds(passwd_t)
-@@ -311,6 +320,8 @@ files_search_var(passwd_t)
+ files_read_etc_runtime_files(passwd_t)
+-files_manage_etc_files(passwd_t)
+ files_search_var(passwd_t)
files_dontaudit_search_pids(passwd_t)
files_relabel_etc_files(passwd_t)
@@ -4488,7 +4333,7 @@ index 441cf22..cd9d876 100644
# /usr/bin/passwd asks for w access to utmp, but it will operate
# correctly without it. Do not audit write denials to utmp.
init_dontaudit_rw_utmp(passwd_t)
-@@ -323,7 +334,7 @@ miscfiles_read_localization(passwd_t)
+@@ -323,7 +335,7 @@ miscfiles_read_localization(passwd_t)
seutil_dontaudit_search_config(passwd_t)
@@ -4497,7 +4342,7 @@ index 441cf22..cd9d876 100644
userdom_use_unpriv_users_fds(passwd_t)
# make sure that getcon succeeds
userdom_getattr_all_users(passwd_t)
-@@ -332,6 +343,7 @@ userdom_read_user_tmp_files(passwd_t)
+@@ -332,6 +344,7 @@ userdom_read_user_tmp_files(passwd_t)
# user generally runs this from their home directory, so do not audit a search
# on user home dir
userdom_dontaudit_search_user_home_content(passwd_t)
@@ -4505,7 +4350,7 @@ index 441cf22..cd9d876 100644
optional_policy(`
nscd_domtrans(passwd_t)
-@@ -381,8 +393,8 @@ dev_read_urand(sysadm_passwd_t)
+@@ -381,9 +394,10 @@ dev_read_urand(sysadm_passwd_t)
fs_getattr_xattr_fs(sysadm_passwd_t)
fs_search_auto_mountpoints(sysadm_passwd_t)
@@ -4514,18 +4359,27 @@ index 441cf22..cd9d876 100644
+term_use_all_inherited_terms(sysadm_passwd_t)
+term_getattr_all_ptys(sysadm_passwd_t)
++auth_manage_passwd(sysadm_passwd_t)
auth_manage_shadow(sysadm_passwd_t)
auth_relabel_shadow(sysadm_passwd_t)
-@@ -426,7 +438,7 @@ optional_policy(`
- # Useradd local policy
+ auth_etc_filetrans_shadow(sysadm_passwd_t)
+@@ -396,7 +410,6 @@ files_read_usr_files(sysadm_passwd_t)
+
+ domain_use_interactive_fds(sysadm_passwd_t)
+
+-files_manage_etc_files(sysadm_passwd_t)
+ files_relabel_etc_files(sysadm_passwd_t)
+ files_read_etc_runtime_files(sysadm_passwd_t)
+ # for nscd lookups
+@@ -427,6 +440,7 @@ optional_policy(`
#
--allow useradd_t self:capability { dac_override chown kill fowner fsetid setuid sys_resource };
-+allow useradd_t self:capability { dac_override chown kill fowner fsetid setuid sys_resource sys_ptrace };
+ allow useradd_t self:capability { dac_override chown kill fowner fsetid setuid sys_resource };
++
dontaudit useradd_t self:capability sys_tty_config;
allow useradd_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimit execmem execstack execheap };
allow useradd_t self:process setfscreate;
-@@ -448,8 +460,12 @@ corecmd_exec_shell(useradd_t)
+@@ -448,10 +462,13 @@ corecmd_exec_shell(useradd_t)
# Execute /usr/bin/{passwd,chfn,chsh} and /usr/sbin/{useradd,vipw}.
corecmd_exec_bin(useradd_t)
@@ -4536,9 +4390,11 @@ index 441cf22..cd9d876 100644
domain_read_all_domains_state(useradd_t)
+domain_dontaudit_read_all_domains_state(useradd_t)
- files_manage_etc_files(useradd_t)
+-files_manage_etc_files(useradd_t)
files_search_var_lib(useradd_t)
-@@ -460,6 +476,7 @@ fs_search_auto_mountpoints(useradd_t)
+ files_relabel_etc_files(useradd_t)
+ files_read_etc_runtime_files(useradd_t)
+@@ -460,6 +477,7 @@ fs_search_auto_mountpoints(useradd_t)
fs_getattr_xattr_fs(useradd_t)
mls_file_upgrade(useradd_t)
@@ -4546,7 +4402,7 @@ index 441cf22..cd9d876 100644
# Allow access to context for shadow file
selinux_get_fs_mount(useradd_t)
-@@ -469,8 +486,8 @@ selinux_compute_create_context(useradd_t)
+@@ -469,8 +487,8 @@ selinux_compute_create_context(useradd_t)
selinux_compute_relabel_context(useradd_t)
selinux_compute_user_contexts(useradd_t)
@@ -4557,7 +4413,15 @@ index 441cf22..cd9d876 100644
auth_domtrans_chk_passwd(useradd_t)
auth_rw_lastlog(useradd_t)
-@@ -498,21 +515,11 @@ seutil_domtrans_setfiles(useradd_t)
+@@ -478,6 +496,7 @@ auth_rw_faillog(useradd_t)
+ auth_use_nsswitch(useradd_t)
+ # these may be unnecessary due to the above
+ # domtrans_chk_passwd() call.
++auth_manage_passwd(useradd_t)
+ auth_manage_shadow(useradd_t)
+ auth_relabel_shadow(useradd_t)
+ auth_etc_filetrans_shadow(useradd_t)
+@@ -498,21 +517,11 @@ seutil_domtrans_setfiles(useradd_t)
userdom_use_unpriv_users_fds(useradd_t)
# Add/remove user home directories
@@ -4851,10 +4715,10 @@ index 0000000..1553356
+')
diff --git a/policy/modules/apps/chrome.te b/policy/modules/apps/chrome.te
new file mode 100644
-index 0000000..28cfa1d
+index 0000000..6c642a2
--- /dev/null
+++ b/policy/modules/apps/chrome.te
-@@ -0,0 +1,178 @@
+@@ -0,0 +1,180 @@
+policy_module(chrome,1.0.0)
+
+########################################
@@ -4883,7 +4747,7 @@ index 0000000..28cfa1d
+#
+# chrome_sandbox local policy
+#
-+allow chrome_sandbox_t self:capability { chown dac_override fsetid setgid setuid sys_admin sys_chroot sys_ptrace };
++allow chrome_sandbox_t self:capability { chown dac_override fsetid setgid setuid sys_admin sys_chroot };
+allow chrome_sandbox_t self:process { signal_perms setrlimit execmem execstack };
+allow chrome_sandbox_t self:process setsched;
+allow chrome_sandbox_t self:fifo_file manage_file_perms;
@@ -4940,6 +4804,8 @@ index 0000000..28cfa1d
+userdom_read_inherited_user_home_content_files(chrome_sandbox_t)
+userdom_dontaudit_use_user_terminals(chrome_sandbox_t)
+userdom_search_user_home_content(chrome_sandbox_t)
++# This one we should figure a way to make it more secure
++userdom_manage_home_certs(chrome_sandbox_t)
+
+miscfiles_read_localization(chrome_sandbox_t)
+miscfiles_read_fonts(chrome_sandbox_t)
@@ -5034,11 +4900,15 @@ index 0000000..28cfa1d
+userdom_execute_user_tmpfs_files(chrome_sandbox_nacl_t)
+userdom_read_inherited_user_tmp_files(chrome_sandbox_nacl_t)
diff --git a/policy/modules/apps/cpufreqselector.te b/policy/modules/apps/cpufreqselector.te
-index 37475dd..7db4a01 100644
+index 37475dd..6026789 100644
--- a/policy/modules/apps/cpufreqselector.te
+++ b/policy/modules/apps/cpufreqselector.te
-@@ -17,6 +17,7 @@ application_domain(cpufreqselector_t, cpufreqselector_exec_t)
- allow cpufreqselector_t self:capability { sys_nice sys_ptrace };
+@@ -14,9 +14,10 @@ application_domain(cpufreqselector_t, cpufreqselector_exec_t)
+ # cpufreq-selector local policy
+ #
+
+-allow cpufreqselector_t self:capability { sys_nice sys_ptrace };
++allow cpufreqselector_t self:capability sys_nice;
allow cpufreqselector_t self:process getsched;
allow cpufreqselector_t self:fifo_file rw_fifo_file_perms;
+allow cpufreqselector_t self:process getsched;
@@ -5525,6 +5395,19 @@ index 0000000..86b640d
+optional_policy(`
+ policykit_dbus_chat(firewallgui_t)
+')
+diff --git a/policy/modules/apps/games.te b/policy/modules/apps/games.te
+index ac4f509..4b7b763 100644
+--- a/policy/modules/apps/games.te
++++ b/policy/modules/apps/games.te
+@@ -166,7 +166,7 @@ userdom_manage_user_tmp_sockets(games_t)
+ # Suppress .icons denial until properly implemented
+ userdom_dontaudit_read_user_home_content_files(games_t)
+
+-tunable_policy(`allow_execmem',`
++tunable_policy(`deny_execmem',`', `
+ allow games_t self:process execmem;
+ ')
+
diff --git a/policy/modules/apps/gift.te b/policy/modules/apps/gift.te
index 6e4add5..10a2ce4 100644
--- a/policy/modules/apps/gift.te
@@ -5591,10 +5474,10 @@ index 00a19e3..9f6139c 100644
+/usr/libexec/gnome-system-monitor-mechanism -- gen_context(system_u:object_r:gnomesystemmm_exec_t,s0)
+/usr/libexec/kde(3|4)/ksysguardprocesslist_helper -- gen_context(system_u:object_r:gnomesystemmm_exec_t,s0)
diff --git a/policy/modules/apps/gnome.if b/policy/modules/apps/gnome.if
-index f5afe78..3f977fc 100644
+index f5afe78..deab06c 100644
--- a/policy/modules/apps/gnome.if
+++ b/policy/modules/apps/gnome.if
-@@ -1,44 +1,787 @@
+@@ -1,44 +1,786 @@
## GNU network object model environment (GNOME)
-############################################################
@@ -5690,8 +5573,7 @@ index f5afe78..3f977fc 100644
+ auth_use_nsswitch($1_gkeyringd_t)
+
+ ps_process_pattern($3, $1_gkeyringd_t)
-+ allow $3 $1_gkeyringd_t:process { ptrace signal_perms };
-+
++ allow $3 $1_gkeyringd_t:process signal_perms;
+ dontaudit $3 gkeyringd_exec_t:file entrypoint;
+
+ stream_connect_pattern($3, gkeyringd_tmp_t, gkeyringd_tmp_t, $1_gkeyringd_t)
@@ -6401,7 +6283,7 @@ index f5afe78..3f977fc 100644
##
##
##
-@@ -46,37 +789,117 @@ interface(`gnome_role',`
+@@ -46,37 +788,117 @@ interface(`gnome_role',`
##
##
#
@@ -6529,7 +6411,7 @@ index f5afe78..3f977fc 100644
##
##
##
-@@ -84,37 +907,53 @@ template(`gnome_read_gconf_config',`
+@@ -84,37 +906,53 @@ template(`gnome_read_gconf_config',`
##
##
#
@@ -6594,7 +6476,7 @@ index f5afe78..3f977fc 100644
##
##
##
-@@ -122,17 +961,17 @@ interface(`gnome_stream_connect_gconf',`
+@@ -122,17 +960,17 @@ interface(`gnome_stream_connect_gconf',`
##
##
#
@@ -6616,7 +6498,7 @@ index f5afe78..3f977fc 100644
##
##
##
-@@ -140,51 +979,299 @@ interface(`gnome_domtrans_gconfd',`
+@@ -140,51 +978,299 @@ interface(`gnome_domtrans_gconfd',`
##
##
#
@@ -6933,7 +6815,7 @@ index f5afe78..3f977fc 100644
+ type_transition $1 gkeyringd_exec_t:process $2;
+')
diff --git a/policy/modules/apps/gnome.te b/policy/modules/apps/gnome.te
-index 2505654..c365443 100644
+index 2505654..45b4ca9 100644
--- a/policy/modules/apps/gnome.te
+++ b/policy/modules/apps/gnome.te
@@ -5,12 +5,29 @@ policy_module(gnome, 2.1.0)
@@ -7021,7 +6903,7 @@ index 2505654..c365443 100644
+# gconf-defaults-mechanisms local policy
+#
+
-+allow gconfdefaultsm_t self:capability { dac_override sys_nice sys_ptrace };
++allow gconfdefaultsm_t self:capability { dac_override sys_nice };
+allow gconfdefaultsm_t self:process getsched;
+allow gconfdefaultsm_t self:fifo_file rw_fifo_file_perms;
+
@@ -7070,7 +6952,7 @@ index 2505654..c365443 100644
+# gnome-system-monitor-mechanisms local policy
+#
+
-+allow gnomesystemmm_t self:capability { sys_nice sys_ptrace };
++allow gnomesystemmm_t self:capability sys_nice;
+allow gnomesystemmm_t self:fifo_file rw_fifo_file_perms;
+
+kernel_read_system_state(gnomesystemmm_t)
@@ -7506,7 +7388,7 @@ index 65ece18..6bfdfd3 100644
+/usr/bin/irssi -- gen_context(system_u:object_r:irssi_exec_t,s0)
/usr/bin/tinyirc -- gen_context(system_u:object_r:irc_exec_t,s0)
diff --git a/policy/modules/apps/irc.if b/policy/modules/apps/irc.if
-index 4f9dc90..8dc8a5f 100644
+index 4f9dc90..81a0fc6 100644
--- a/policy/modules/apps/irc.if
+++ b/policy/modules/apps/irc.if
@@ -18,9 +18,11 @@
@@ -7528,7 +7410,7 @@ index 4f9dc90..8dc8a5f 100644
+
+ domtrans_pattern($2, irssi_exec_t, irssi_t)
+
-+ allow $2 irssi_t:process { ptrace signal_perms };
++ allow $2 irssi_t:process signal_perms;
+ ps_process_pattern($2, irssi_t)
+
+ manage_dirs_pattern($2, irssi_home_t, irssi_home_t)
@@ -7839,10 +7721,10 @@ index 0000000..cf65577
+')
diff --git a/policy/modules/apps/kde.te b/policy/modules/apps/kde.te
new file mode 100644
-index 0000000..6d0c9e3
+index 0000000..169421f
--- /dev/null
+++ b/policy/modules/apps/kde.te
-@@ -0,0 +1,43 @@
+@@ -0,0 +1,40 @@
+policy_module(kde,1.0.0)
+
+########################################
@@ -7858,9 +7740,6 @@ index 0000000..6d0c9e3
+#
+# backlighthelper local policy
+#
-+
-+dontaudit kdebacklighthelper_t self:capability sys_ptrace;
-+
+allow kdebacklighthelper_t self:fifo_file rw_fifo_file_perms;
+
+kernel_read_system_state(kdebacklighthelper_t)
@@ -7965,13 +7844,18 @@ index b2e27ec..c324f94 100644
##
##
diff --git a/policy/modules/apps/livecd.te b/policy/modules/apps/livecd.te
-index a0be4ef..9fcc9df 100644
+index a0be4ef..a3d8afd 100644
--- a/policy/modules/apps/livecd.te
+++ b/policy/modules/apps/livecd.te
-@@ -21,15 +21,32 @@ files_tmp_file(livecd_tmp_t)
+@@ -20,16 +20,36 @@ files_tmp_file(livecd_tmp_t)
+
dontaudit livecd_t self:capability2 mac_admin;
- domain_ptrace_all_domains(livecd_t)
+-domain_ptrace_all_domains(livecd_t)
++tunable_policy(`deny_ptrace',`',`
++ domain_ptrace_all_domains(livecd_t)
++')
++
+domain_interactive_fd(livecd_t)
manage_dirs_pattern(livecd_t, livecd_tmp_t, livecd_tmp_t)
@@ -8018,10 +7902,19 @@ index b55edd0..7b8d952 100644
########################################
diff --git a/policy/modules/apps/loadkeys.te b/policy/modules/apps/loadkeys.te
-index 2523758..50629a8 100644
+index 2523758..09669b6 100644
--- a/policy/modules/apps/loadkeys.te
+++ b/policy/modules/apps/loadkeys.te
-@@ -38,7 +38,7 @@ locallogin_use_fds(loadkeys_t)
+@@ -31,6 +31,8 @@ files_read_etc_runtime_files(loadkeys_t)
+ term_dontaudit_use_console(loadkeys_t)
+ term_use_unallocated_ttys(loadkeys_t)
+
++auth_read_passwd(loadkeys_t)
++
+ init_dontaudit_use_fds(loadkeys_t)
+ init_dontaudit_use_script_ptys(loadkeys_t)
+
+@@ -38,7 +40,7 @@ locallogin_use_fds(loadkeys_t)
miscfiles_read_localization(loadkeys_t)
@@ -8030,7 +7923,7 @@ index 2523758..50629a8 100644
userdom_list_user_home_content(loadkeys_t)
ifdef(`hide_broken_symptoms',`
-@@ -46,5 +46,9 @@ ifdef(`hide_broken_symptoms',`
+@@ -46,5 +48,9 @@ ifdef(`hide_broken_symptoms',`
')
optional_policy(`
@@ -8052,18 +7945,21 @@ index 0bac996..ca2388d 100644
+userdom_use_inherited_user_terminals(lockdev_t)
diff --git a/policy/modules/apps/mono.if b/policy/modules/apps/mono.if
-index 7b08e13..1fa8573 100644
+index 7b08e13..b2b83ad 100644
--- a/policy/modules/apps/mono.if
+++ b/policy/modules/apps/mono.if
-@@ -41,7 +41,6 @@ template(`mono_role_template',`
+@@ -40,16 +40,16 @@ template(`mono_role_template',`
+ domain_interactive_fd($1_mono_t)
application_type($1_mono_t)
- allow $1_mono_t self:process { ptrace signal getsched execheap execmem execstack };
+- allow $1_mono_t self:process { ptrace signal getsched execheap execmem execstack };
-
- allow $3 $1_mono_t:process { getattr ptrace noatsecure signal_perms };
+- allow $3 $1_mono_t:process { getattr ptrace noatsecure signal_perms };
++ allow $1_mono_t self:process { signal getsched execheap execmem execstack };
++ allow $3 $1_mono_t:process { getattr noatsecure signal_perms };
domtrans_pattern($3, mono_exec_t, $1_mono_t)
-@@ -49,7 +48,8 @@ template(`mono_role_template',`
+
fs_dontaudit_rw_tmpfs_files($1_mono_t)
corecmd_bin_domtrans($1_mono_t, $1_t)
@@ -8073,6 +7969,19 @@ index 7b08e13..1fa8573 100644
optional_policy(`
xserver_role($1_r, $1_mono_t)
+diff --git a/policy/modules/apps/mono.te b/policy/modules/apps/mono.te
+index dff0f12..ecab36d 100644
+--- a/policy/modules/apps/mono.te
++++ b/policy/modules/apps/mono.te
+@@ -15,7 +15,7 @@ init_system_domain(mono_t, mono_exec_t)
+ # Local policy
+ #
+
+-allow mono_t self:process { ptrace signal getsched execheap execmem execstack };
++allow mono_t self:process { signal getsched execheap execmem execstack };
+
+ init_dbus_chat_script(mono_t)
+
diff --git a/policy/modules/apps/mozilla.fc b/policy/modules/apps/mozilla.fc
index 93ac529..35b51ab 100644
--- a/policy/modules/apps/mozilla.fc
@@ -8108,7 +8017,7 @@ index 93ac529..35b51ab 100644
+/usr/lib/[^/]*firefox[^/]*/firefox -- gen_context(system_u:object_r:mozilla_exec_t,s0)
+/usr/lib/xulrunner[^/]*/plugin-container -- gen_context(system_u:object_r:mozilla_plugin_exec_t,s0)
diff --git a/policy/modules/apps/mozilla.if b/policy/modules/apps/mozilla.if
-index fbb5c5a..8fe4551 100644
+index fbb5c5a..b9b8ac2 100644
--- a/policy/modules/apps/mozilla.if
+++ b/policy/modules/apps/mozilla.if
@@ -29,6 +29,8 @@ interface(`mozilla_role',`
@@ -8165,7 +8074,7 @@ index fbb5c5a..8fe4551 100644
+ allow mozilla_plugin_t $1:sem create_sem_perms;
+
+ ps_process_pattern($1, mozilla_plugin_t)
-+ allow $1 mozilla_plugin_t:process { ptrace signal_perms };
++ allow $1 mozilla_plugin_t:process signal_perms;
')
########################################
@@ -8261,7 +8170,7 @@ index fbb5c5a..8fe4551 100644
+ dontaudit $1 mozilla_plugin_t:unix_stream_socket { read write };
')
diff --git a/policy/modules/apps/mozilla.te b/policy/modules/apps/mozilla.te
-index 2e9318b..8768af4 100644
+index 2e9318b..69e2534 100644
--- a/policy/modules/apps/mozilla.te
+++ b/policy/modules/apps/mozilla.te
@@ -25,6 +25,7 @@ files_config_file(mozilla_conf_t)
@@ -8304,7 +8213,7 @@ index 2e9318b..8768af4 100644
logging_send_syslog_msg(mozilla_t)
miscfiles_read_fonts(mozilla_t)
-@@ -165,7 +172,7 @@ miscfiles_dontaudit_setattr_fonts_dirs(mozilla_t)
+@@ -165,14 +172,18 @@ miscfiles_dontaudit_setattr_fonts_dirs(mozilla_t)
# Browse the web, connect to printer
sysnet_dns_name_resolve(mozilla_t)
@@ -8313,7 +8222,20 @@ index 2e9318b..8768af4 100644
xserver_user_x_domain_template(mozilla, mozilla_t, mozilla_tmpfs_t)
xserver_dontaudit_read_xdm_tmp_files(mozilla_t)
-@@ -262,6 +269,7 @@ optional_policy(`
+ xserver_dontaudit_getattr_xdm_tmp_sockets(mozilla_t)
+
+-tunable_policy(`allow_execmem',`
+- allow mozilla_t self:process { execmem execstack };
++tunable_policy(`allow_execstack',`
++ allow mozilla_t self:process execstack;
++')
++
++tunable_policy(`deny_execmem',`',`
++ allow mozilla_t self:process execmem;
+ ')
+
+ tunable_policy(`use_nfs_home_dirs',`
+@@ -262,6 +273,7 @@ optional_policy(`
optional_policy(`
gnome_stream_connect_gconf(mozilla_t)
gnome_manage_config(mozilla_t)
@@ -8321,7 +8243,7 @@ index 2e9318b..8768af4 100644
')
optional_policy(`
-@@ -278,7 +286,8 @@ optional_policy(`
+@@ -278,7 +290,8 @@ optional_policy(`
')
optional_policy(`
@@ -8331,12 +8253,12 @@ index 2e9318b..8768af4 100644
')
optional_policy(`
-@@ -296,16 +305,19 @@ optional_policy(`
+@@ -296,16 +309,19 @@ optional_policy(`
# mozilla_plugin local policy
#
-dontaudit mozilla_plugin_t self:capability { sys_ptrace };
-+dontaudit mozilla_plugin_t self:capability { sys_ptrace sys_nice };
++dontaudit mozilla_plugin_t self:capability sys_nice;
+
allow mozilla_plugin_t self:process { setsched signal_perms execmem };
-allow mozilla_plugin_t self:fifo_file manage_fifo_file_perms;
@@ -8355,7 +8277,7 @@ index 2e9318b..8768af4 100644
can_exec(mozilla_plugin_t, mozilla_home_t)
read_files_pattern(mozilla_plugin_t, mozilla_home_t, mozilla_home_t)
-@@ -313,8 +325,10 @@ read_files_pattern(mozilla_plugin_t, mozilla_home_t, mozilla_home_t)
+@@ -313,8 +329,10 @@ read_files_pattern(mozilla_plugin_t, mozilla_home_t, mozilla_home_t)
manage_dirs_pattern(mozilla_plugin_t, mozilla_plugin_tmp_t, mozilla_plugin_tmp_t)
manage_files_pattern(mozilla_plugin_t, mozilla_plugin_tmp_t, mozilla_plugin_tmp_t)
manage_fifo_files_pattern(mozilla_plugin_t, mozilla_plugin_tmp_t, mozilla_plugin_tmp_t)
@@ -8368,7 +8290,7 @@ index 2e9318b..8768af4 100644
manage_files_pattern(mozilla_plugin_t, mozilla_plugin_tmpfs_t, mozilla_plugin_tmpfs_t)
manage_lnk_files_pattern(mozilla_plugin_t, mozilla_plugin_tmpfs_t, mozilla_plugin_tmpfs_t)
-@@ -332,11 +346,9 @@ kernel_request_load_module(mozilla_plugin_t)
+@@ -332,11 +350,9 @@ kernel_request_load_module(mozilla_plugin_t)
corecmd_exec_bin(mozilla_plugin_t)
corecmd_exec_shell(mozilla_plugin_t)
@@ -8382,7 +8304,7 @@ index 2e9318b..8768af4 100644
corenet_tcp_connect_pulseaudio_port(mozilla_plugin_t)
corenet_tcp_connect_http_port(mozilla_plugin_t)
corenet_tcp_connect_http_cache_port(mozilla_plugin_t)
-@@ -344,6 +356,9 @@ corenet_tcp_connect_squid_port(mozilla_plugin_t)
+@@ -344,6 +360,9 @@ corenet_tcp_connect_squid_port(mozilla_plugin_t)
corenet_tcp_connect_ipp_port(mozilla_plugin_t)
corenet_tcp_connect_mmcc_port(mozilla_plugin_t)
corenet_tcp_connect_speech_port(mozilla_plugin_t)
@@ -8392,7 +8314,7 @@ index 2e9318b..8768af4 100644
dev_read_rand(mozilla_plugin_t)
dev_read_urand(mozilla_plugin_t)
-@@ -385,13 +400,19 @@ term_getattr_all_ttys(mozilla_plugin_t)
+@@ -385,20 +404,26 @@ term_getattr_all_ttys(mozilla_plugin_t)
term_getattr_all_ptys(mozilla_plugin_t)
userdom_rw_user_tmpfs_files(mozilla_plugin_t)
@@ -8410,9 +8332,19 @@ index 2e9318b..8768af4 100644
+userdom_read_home_certs(mozilla_plugin_t)
+userdom_dontaudit_write_home_certs(mozilla_plugin_t)
- tunable_policy(`allow_execmem',`
- allow mozilla_plugin_t self:process { execmem execstack };
-@@ -425,7 +446,13 @@ optional_policy(`
+-tunable_policy(`allow_execmem',`
+- allow mozilla_plugin_t self:process { execmem execstack };
++tunable_policy(`deny_execmem',`', `
++ allow mozilla_plugin_t self:process execmem;
+ ')
+
+ tunable_policy(`allow_execstack',`
+- allow mozilla_plugin_t self:process { execstack };
++ allow mozilla_plugin_t self:process execstack;
+ ')
+
+ tunable_policy(`use_nfs_home_dirs',`
+@@ -425,7 +450,13 @@ optional_policy(`
')
optional_policy(`
@@ -8426,7 +8358,7 @@ index 2e9318b..8768af4 100644
')
optional_policy(`
-@@ -438,7 +465,14 @@ optional_policy(`
+@@ -438,7 +469,14 @@ optional_policy(`
')
optional_policy(`
@@ -8442,7 +8374,7 @@ index 2e9318b..8768af4 100644
')
optional_policy(`
-@@ -446,10 +480,27 @@ optional_policy(`
+@@ -446,10 +484,27 @@ optional_policy(`
pulseaudio_stream_connect(mozilla_plugin_t)
pulseaudio_setattr_home_dir(mozilla_plugin_t)
pulseaudio_manage_home_files(mozilla_plugin_t)
@@ -8515,7 +8447,7 @@ index d8ea41d..8bdc526 100644
+ domtrans_pattern($1, mplayer_exec_t, $2)
+')
diff --git a/policy/modules/apps/mplayer.te b/policy/modules/apps/mplayer.te
-index 072a210..16ce654 100644
+index 072a210..8b1fa1b 100644
--- a/policy/modules/apps/mplayer.te
+++ b/policy/modules/apps/mplayer.te
@@ -32,6 +32,7 @@ files_config_file(mplayer_etc_t)
@@ -8535,6 +8467,15 @@ index 072a210..16ce654 100644
# Handle removable media, /tmp, and /home
userdom_list_user_tmp(mencoder_t)
userdom_read_user_tmp_files(mencoder_t)
+@@ -91,7 +92,7 @@ ifndef(`enable_mls',`
+ fs_read_removable_symlinks(mencoder_t)
+ ')
+
+-tunable_policy(`allow_execmem',`
++tunable_policy(`deny_execmem',`',`
+ allow mencoder_t self:process execmem;
+ ')
+
@@ -159,6 +160,7 @@ manage_dirs_pattern(mplayer_t, mplayer_home_t, mplayer_home_t)
manage_files_pattern(mplayer_t, mplayer_home_t, mplayer_home_t)
manage_lnk_files_pattern(mplayer_t, mplayer_home_t, mplayer_home_t)
@@ -8559,6 +8500,15 @@ index 072a210..16ce654 100644
# Read media files
userdom_list_user_tmp(mplayer_t)
userdom_read_user_tmp_files(mplayer_t)
+@@ -246,7 +252,7 @@ ifdef(`enable_mls',`',`
+ fs_read_removable_symlinks(mplayer_t)
+ ')
+
+-tunable_policy(`allow_execmem',`
++tunable_policy(`deny_execmem',`',`
+ allow mplayer_t self:process execmem;
+ ')
+
@@ -305,7 +311,7 @@ optional_policy(`
')
@@ -8694,7 +8644,7 @@ index 0000000..22e6c96
+/usr/lib/mozilla/plugins-wrapped(/.*)? gen_context(system_u:object_r:nsplugin_rw_t,s0)
diff --git a/policy/modules/apps/nsplugin.if b/policy/modules/apps/nsplugin.if
new file mode 100644
-index 0000000..1925bd9
+index 0000000..fce899a
--- /dev/null
+++ b/policy/modules/apps/nsplugin.if
@@ -0,0 +1,472 @@
@@ -8793,7 +8743,7 @@ index 0000000..1925bd9
+ dontaudit nsplugin_t $2:shm destroy;
+ allow $2 nsplugin_t:sem rw_sem_perms;
+
-+ allow $2 nsplugin_t:process { getattr ptrace signal_perms };
++ allow $2 nsplugin_t:process { getattr signal_perms };
+ allow $2 nsplugin_t:unix_stream_socket connectto;
+
+ # Connect to pulseaudit server
@@ -9172,7 +9122,7 @@ index 0000000..1925bd9
+')
diff --git a/policy/modules/apps/nsplugin.te b/policy/modules/apps/nsplugin.te
new file mode 100644
-index 0000000..f0773b4
+index 0000000..3b6b4cb
--- /dev/null
+++ b/policy/modules/apps/nsplugin.te
@@ -0,0 +1,335 @@
@@ -9232,7 +9182,7 @@ index 0000000..f0773b4
+#
+dontaudit nsplugin_t self:capability { sys_nice sys_tty_config };
+allow nsplugin_t self:fifo_file rw_file_perms;
-+allow nsplugin_t self:process { ptrace setpgid getsched setsched signal_perms };
++allow nsplugin_t self:process { setpgid getsched setsched signal_perms };
+
+allow nsplugin_t self:sem create_sem_perms;
+allow nsplugin_t self:shm create_shm_perms;
@@ -9522,7 +9472,7 @@ index 0000000..4428be4
+
diff --git a/policy/modules/apps/openoffice.if b/policy/modules/apps/openoffice.if
new file mode 100644
-index 0000000..0578e7c
+index 0000000..792bf9c
--- /dev/null
+++ b/policy/modules/apps/openoffice.if
@@ -0,0 +1,124 @@
@@ -9597,7 +9547,7 @@ index 0000000..0578e7c
+
+ allow $1_openoffice_t self:process { getsched sigkill execmem execstack };
+
-+ allow $3 $1_openoffice_t:process { getattr ptrace signal_perms noatsecure siginh rlimitinh };
++ allow $3 $1_openoffice_t:process { getattr signal_perms noatsecure siginh rlimitinh };
+ allow $1_openoffice_t $3:tcp_socket { read write };
+
+ domtrans_pattern($3, openoffice_exec_t, $1_openoffice_t)
@@ -9672,6 +9622,20 @@ index 0000000..a842371
+# Unconfined java local policy
+#
+
+diff --git a/policy/modules/apps/podsleuth.te b/policy/modules/apps/podsleuth.te
+index ccc15ab..9f88c3a 100644
+--- a/policy/modules/apps/podsleuth.te
++++ b/policy/modules/apps/podsleuth.te
+@@ -27,7 +27,8 @@ ubac_constrained(podsleuth_tmpfs_t)
+ # podsleuth local policy
+ #
+ allow podsleuth_t self:capability { kill dac_override sys_admin sys_rawio };
+-allow podsleuth_t self:process { ptrace signal signull getsched execheap execmem execstack };
++allow podsleuth_t self:process { signal signull getsched execheap execmem execstack };
++
+ allow podsleuth_t self:fifo_file rw_file_perms;
+ allow podsleuth_t self:unix_stream_socket create_stream_socket_perms;
+ allow podsleuth_t self:sem create_sem_perms;
diff --git a/policy/modules/apps/pulseaudio.fc b/policy/modules/apps/pulseaudio.fc
index 84f23dc..af5b87d 100644
--- a/policy/modules/apps/pulseaudio.fc
@@ -9688,21 +9652,20 @@ index 84f23dc..af5b87d 100644
/var/lib/pulse(/.*)? gen_context(system_u:object_r:pulseaudio_var_lib_t,s0)
diff --git a/policy/modules/apps/pulseaudio.if b/policy/modules/apps/pulseaudio.if
-index f40c64d..a08cb82 100644
+index f40c64d..aa9e8e2 100644
--- a/policy/modules/apps/pulseaudio.if
+++ b/policy/modules/apps/pulseaudio.if
-@@ -35,6 +35,10 @@ interface(`pulseaudio_role',`
+@@ -35,6 +35,9 @@ interface(`pulseaudio_role',`
allow pulseaudio_t $2:unix_stream_socket connectto;
allow $2 pulseaudio_t:unix_stream_socket connectto;
-+ userdom_manage_home_role($1, pulseaudio_t)
+ userdom_manage_tmp_role($1, pulseaudio_t)
+ userdom_manage_tmpfs_role($1, pulseaudio_t)
+
allow $2 pulseaudio_t:dbus send_msg;
allow pulseaudio_t $2:dbus { acquire_svc send_msg };
')
-@@ -257,4 +261,66 @@ interface(`pulseaudio_manage_home_files',`
+@@ -257,4 +260,66 @@ interface(`pulseaudio_manage_home_files',`
userdom_search_user_home_dirs($1)
manage_files_pattern($1, pulseaudio_home_t, pulseaudio_home_t)
read_lnk_files_pattern($1, pulseaudio_home_t, pulseaudio_home_t)
@@ -9770,7 +9733,7 @@ index f40c64d..a08cb82 100644
+ userdom_admin_home_dir_filetrans($1, pulseaudio_home_t, file, ".pulse-cookie")
')
diff --git a/policy/modules/apps/pulseaudio.te b/policy/modules/apps/pulseaudio.te
-index d1eace5..8522ab4 100644
+index d1eace5..5314e57 100644
--- a/policy/modules/apps/pulseaudio.te
+++ b/policy/modules/apps/pulseaudio.te
@@ -44,6 +44,7 @@ allow pulseaudio_t self:netlink_kobject_uevent_socket create_socket_perms;
@@ -9801,7 +9764,7 @@ index d1eace5..8522ab4 100644
auth_use_nsswitch(pulseaudio_t)
-@@ -94,10 +95,9 @@ logging_send_syslog_msg(pulseaudio_t)
+@@ -94,10 +95,29 @@ logging_send_syslog_msg(pulseaudio_t)
miscfiles_read_localization(pulseaudio_t)
@@ -9809,13 +9772,33 @@ index d1eace5..8522ab4 100644
-userdom_manage_user_home_content_files(pulseaudio_t)
-userdom_manage_user_tmp_files(pulseaudio_t)
-userdom_manage_user_tmpfs_files(pulseaudio_t)
++tunable_policy(`use_nfs_home_dirs',`
++ fs_mount_nfs(pulseaudio_t)
++ fs_mounton_nfs(pulseaudio_t)
++ fs_manage_nfs_dirs(pulseaudio_t)
++ fs_manage_nfs_files(pulseaudio_t)
++ fs_manage_nfs_symlinks(pulseaudio_t)
++ fs_manage_nfs_named_sockets(pulseaudio_t)
++ fs_manage_nfs_named_pipes(pulseaudio_t)
++')
++
++tunable_policy(`use_samba_home_dirs',`
++ fs_mount_cifs(pulseaudio_t)
++ fs_mounton_cifs(pulseaudio_t)
++ fs_manage_cifs_dirs(pulseaudio_t)
++ fs_manage_cifs_files(pulseaudio_t)
++ fs_manage_cifs_symlinks(pulseaudio_t)
++ fs_manage_cifs_named_sockets(pulseaudio_t)
++ fs_manage_cifs_named_pipes(pulseaudio_t)
++')
++
+optional_policy(`
+ alsa_read_rw_config(pulseaudio_t)
+')
optional_policy(`
bluetooth_stream_connect(pulseaudio_t)
-@@ -127,10 +127,24 @@ optional_policy(`
+@@ -127,10 +147,24 @@ optional_policy(`
')
optional_policy(`
@@ -9840,7 +9823,7 @@ index d1eace5..8522ab4 100644
policykit_domtrans_auth(pulseaudio_t)
policykit_read_lib(pulseaudio_t)
policykit_read_reload(pulseaudio_t)
-@@ -148,3 +162,7 @@ optional_policy(`
+@@ -148,3 +182,7 @@ optional_policy(`
xserver_read_xdm_pid(pulseaudio_t)
xserver_user_x_domain_template(pulseaudio, pulseaudio_t, pulseaudio_tmpfs_t)
')
@@ -10030,10 +10013,20 @@ index 268d691..da3a26d 100644
+ domain_entry_file($1, qemu_exec_t)
+')
diff --git a/policy/modules/apps/qemu.te b/policy/modules/apps/qemu.te
-index 1813e16..50a3a34 100644
+index 1813e16..606d712 100644
--- a/policy/modules/apps/qemu.te
+++ b/policy/modules/apps/qemu.te
-@@ -55,6 +55,7 @@ storage_raw_read_removable_device(qemu_t)
+@@ -40,9 +40,7 @@ gen_tunable(qemu_use_nfs, true)
+ ##
+ gen_tunable(qemu_use_usb, true)
+
+-type qemu_exec_t;
+ virt_domain_template(qemu)
+-application_domain(qemu_t, qemu_exec_t)
+ role system_r types qemu_t;
+
+ ########################################
+@@ -55,6 +53,7 @@ storage_raw_read_removable_device(qemu_t)
userdom_search_user_home_content(qemu_t)
userdom_read_user_tmpfs_files(qemu_t)
@@ -10041,7 +10034,7 @@ index 1813e16..50a3a34 100644
tunable_policy(`qemu_full_network',`
allow qemu_t self:udp_socket create_socket_perms;
-@@ -99,6 +100,13 @@ optional_policy(`
+@@ -99,6 +98,13 @@ optional_policy(`
')
optional_policy(`
@@ -10055,7 +10048,7 @@ index 1813e16..50a3a34 100644
virt_manage_images(qemu_t)
virt_append_log(qemu_t)
')
-@@ -111,18 +119,3 @@ optional_policy(`
+@@ -111,18 +117,3 @@ optional_policy(`
xserver_read_xdm_pid(qemu_t)
xserver_stream_connect(qemu_t)
')
@@ -10488,10 +10481,10 @@ index 0000000..809784d
+')
diff --git a/policy/modules/apps/sandbox.te b/policy/modules/apps/sandbox.te
new file mode 100644
-index 0000000..5e75113
+index 0000000..76dbb45
--- /dev/null
+++ b/policy/modules/apps/sandbox.te
-@@ -0,0 +1,488 @@
+@@ -0,0 +1,501 @@
+policy_module(sandbox,1.0.0)
+dbus_stub()
+attribute sandbox_domain;
@@ -10534,7 +10527,12 @@ index 0000000..5e75113
+#
+# sandbox xserver policy
+#
-+allow sandbox_xserver_t self:process { execmem execstack };
++allow sandbox_xserver_t self:process execstack;
++
++tunable_policy(`deny_execmem',`',`
++ allow sandbox_xserver_t self:process execmem;
++')
++
+allow sandbox_xserver_t self:fifo_file manage_fifo_file_perms;
+allow sandbox_xserver_t self:shm create_shm_perms;
+allow sandbox_xserver_t self:tcp_socket create_stream_socket_perms;
@@ -10613,7 +10611,11 @@ index 0000000..5e75113
+# sandbox local policy
+#
+
-+allow sandbox_domain self:process { getattr signal_perms getsched setsched setpgid execstack execmem };
++allow sandbox_domain self:process { getattr signal_perms getsched setsched setpgid execstack };
++tunable_policy(`deny_execmem',`',`
++ allow sandbox_domain self:process execmem;
++')
++
+allow sandbox_domain self:fifo_file manage_file_perms;
+allow sandbox_domain self:sem create_sem_perms;
+allow sandbox_domain self:shm create_shm_perms;
@@ -10662,7 +10664,11 @@ index 0000000..5e75113
+#
+# sandbox_x_domain local policy
+#
-+allow sandbox_x_domain self:process { getattr signal_perms getsched setsched setpgid execstack execmem };
++allow sandbox_x_domain self:process { getattr signal_perms getsched setsched setpgid execstack };
++tunable_policy(`deny_execmem',`',`
++ allow sandbox_x_domain self:process execmem;
++')
++
+allow sandbox_x_domain self:fifo_file manage_file_perms;
+allow sandbox_x_domain self:sem create_sem_perms;
+allow sandbox_x_domain self:shm create_shm_perms;
@@ -11923,10 +11929,10 @@ index 0000000..5554dc9
+
diff --git a/policy/modules/apps/thumb.te b/policy/modules/apps/thumb.te
new file mode 100644
-index 0000000..b4001f1
+index 0000000..01584ce
--- /dev/null
+++ b/policy/modules/apps/thumb.te
-@@ -0,0 +1,76 @@
+@@ -0,0 +1,81 @@
+policy_module(thumb, 1.0.0)
+
+########################################
@@ -11948,7 +11954,12 @@ index 0000000..b4001f1
+# thumb local policy
+#
+
-+allow thumb_t self:process { setsched signal setrlimit execmem };
++allow thumb_t self:process { setsched signal setrlimit };
++
++tunable_policy(`deny_execmem',`',`
++ allow thumb_t self:process execmem;
++')
++
+allow thumb_t self:fifo_file manage_fifo_file_perms;
+allow thumb_t self:unix_stream_socket create_stream_socket_perms;
+allow thumb_t self:netlink_route_socket r_netlink_socket_perms;
@@ -12016,10 +12027,35 @@ index 11fe4f2..98bfbf3 100644
userdom_read_user_home_content_files(tvtime_t)
# X access, Home files
+diff --git a/policy/modules/apps/uml.if b/policy/modules/apps/uml.if
+index d2ab7cb..ddb34f1 100644
+--- a/policy/modules/apps/uml.if
++++ b/policy/modules/apps/uml.if
+@@ -31,9 +31,9 @@ interface(`uml_role',`
+ allow $2 uml_t:unix_dgram_socket sendto;
+ allow uml_t $2:unix_dgram_socket sendto;
+
+- # allow ps, ptrace, signal
++ # allow ps, signal
+ ps_process_pattern($2, uml_t)
+- allow $2 uml_t:process { ptrace signal_perms };
++ allow $2 uml_t:process signal_perms;
+
+ allow $2 uml_ro_t:dir list_dir_perms;
+ read_files_pattern($2, uml_ro_t, uml_ro_t)
diff --git a/policy/modules/apps/uml.te b/policy/modules/apps/uml.te
-index 2df1343..7a11f39 100644
+index 2df1343..c716960 100644
--- a/policy/modules/apps/uml.te
+++ b/policy/modules/apps/uml.te
+@@ -53,7 +53,7 @@ files_pid_file(uml_switch_var_run_t)
+ #
+
+ allow uml_t self:fifo_file rw_fifo_file_perms;
+-allow uml_t self:process { signal_perms ptrace };
++allow uml_t self:process signal_perms;
+ allow uml_t self:unix_stream_socket create_stream_socket_perms;
+ allow uml_t self:unix_dgram_socket create_socket_perms;
+ # Use the network.
@@ -134,7 +134,7 @@ seutil_use_newrole_fds(uml_t)
# Use the network.
sysnet_read_config(uml_t)
@@ -12253,16 +12289,35 @@ index 13b2cea..8ce8577 100644
+ files_search_mnt(consolehelper_domain)
+ fs_search_cifs(consolehelper_domain)
+')
+diff --git a/policy/modules/apps/usernetctl.if b/policy/modules/apps/usernetctl.if
+index ba9b9d6..09ae47c 100644
+--- a/policy/modules/apps/usernetctl.if
++++ b/policy/modules/apps/usernetctl.if
+@@ -47,10 +47,6 @@ interface(`usernetctl_run',`
+ sysnet_run_dhcpc(usernetctl_t, $2)
+
+ optional_policy(`
+- consoletype_run(usernetctl_t, $2)
+- ')
+-
+- optional_policy(`
+ iptables_run(usernetctl_t, $2)
+ ')
+
diff --git a/policy/modules/apps/usernetctl.te b/policy/modules/apps/usernetctl.te
-index 9586818..f938024 100644
+index 9586818..93edd6b 100644
--- a/policy/modules/apps/usernetctl.te
+++ b/policy/modules/apps/usernetctl.te
-@@ -58,7 +58,7 @@ seutil_read_config(usernetctl_t)
+@@ -58,7 +58,11 @@ seutil_read_config(usernetctl_t)
sysnet_read_config(usernetctl_t)
-userdom_use_user_terminals(usernetctl_t)
+userdom_use_inherited_user_terminals(usernetctl_t)
++
++optional_policy(`
++ consoletype_exec(usernetctl_t)
++')
optional_policy(`
hostname_exec(usernetctl_t)
@@ -12294,9 +12349,18 @@ index f647c7e..252468a 100644
/usr/sbin/vmware-serverd -- gen_context(system_u:object_r:vmware_exec_t,s0)
diff --git a/policy/modules/apps/vmware.te b/policy/modules/apps/vmware.te
-index 23066a1..6aff330 100644
+index 23066a1..dc73652 100644
--- a/policy/modules/apps/vmware.te
+++ b/policy/modules/apps/vmware.te
+@@ -72,7 +72,7 @@ ifdef(`enable_mcs',`
+ # VMWare host local policy
+ #
+
+-allow vmware_host_t self:capability { setgid setuid net_raw sys_nice sys_time sys_ptrace kill dac_override };
++allow vmware_host_t self:capability { setgid setuid net_raw sys_nice sys_time kill dac_override };
+ dontaudit vmware_host_t self:capability sys_tty_config;
+ allow vmware_host_t self:process { execstack execmem signal_perms };
+ allow vmware_host_t self:fifo_file rw_fifo_file_perms;
@@ -126,6 +126,7 @@ dev_getattr_all_blk_files(vmware_host_t)
dev_read_sysfs(vmware_host_t)
dev_read_urand(vmware_host_t)
@@ -12412,7 +12476,7 @@ index 9d24449..2666317 100644
/opt/picasa/wine/bin/wine.* -- gen_context(system_u:object_r:wine_exec_t,s0)
diff --git a/policy/modules/apps/wine.if b/policy/modules/apps/wine.if
-index f9a73d0..e10101a 100644
+index f9a73d0..00a98f1 100644
--- a/policy/modules/apps/wine.if
+++ b/policy/modules/apps/wine.if
@@ -29,12 +29,16 @@
@@ -12450,7 +12514,13 @@ index f9a73d0..e10101a 100644
type wine_exec_t;
')
-@@ -101,7 +105,7 @@ template(`wine_role_template',`
+@@ -96,12 +100,12 @@ template(`wine_role_template',`
+ role $2 types $1_wine_t;
+
+ allow $1_wine_t self:process { execmem execstack };
+- allow $3 $1_wine_t:process { getattr ptrace noatsecure signal_perms };
++ allow $3 $1_wine_t:process { getattr noatsecure signal_perms };
+ domtrans_pattern($3, wine_exec_t, $1_wine_t)
corecmd_bin_domtrans($1_wine_t, $1_t)
userdom_unpriv_usertype($1, $1_wine_t)
@@ -12902,6 +12972,19 @@ index 9e9263a..650e796 100644
manage_files_pattern($1, bin_t, exec_type)
manage_lnk_files_pattern($1, bin_t, bin_t)
')
+diff --git a/policy/modules/kernel/corecommands.te b/policy/modules/kernel/corecommands.te
+index 23a1c3c..9527971 100644
+--- a/policy/modules/kernel/corecommands.te
++++ b/policy/modules/kernel/corecommands.te
+@@ -13,7 +13,7 @@ attribute exec_type;
+ #
+ # bin_t is the type of files in the system bin/sbin directories.
+ #
+-type bin_t alias { ls_exec_t sbin_t };
++type bin_t alias { ls_exec_t sbin_t java_exec_t execmem_exec_t mono_exec_t };
+ corecmd_executable_file(bin_t)
+ dev_associate(bin_t) #For /dev/MAKEDEV
+
diff --git a/policy/modules/kernel/corenetwork.if.in b/policy/modules/kernel/corenetwork.if.in
index 4f3b542..cf422f4 100644
--- a/policy/modules/kernel/corenetwork.if.in
@@ -14064,7 +14147,7 @@ index 4f3b542..cf422f4 100644
corenet_udp_recvfrom_labeled($1, $2)
corenet_raw_recvfrom_labeled($1, $2)
diff --git a/policy/modules/kernel/corenetwork.te.in b/policy/modules/kernel/corenetwork.te.in
-index 99b71cb..ff28a20 100644
+index 99b71cb..1541989 100644
--- a/policy/modules/kernel/corenetwork.te.in
+++ b/policy/modules/kernel/corenetwork.te.in
@@ -11,11 +11,15 @@ attribute netif_type;
@@ -14212,7 +14295,7 @@ index 99b71cb..ff28a20 100644
-network_port(kerberos_admin, tcp,464,s0, udp,464,s0, tcp,749,s0)
-network_port(kerberos_master, tcp,4444,s0, udp,4444,s0)
+network_port(jabber_router, tcp,5347,s0)
-+network_port(jboss_management, tcp,4712,s0, udp,4712,s0, tcp,9123,s0, udp,9123,s0, tcp, 18001, s0)
++network_port(jboss_management, tcp,4712,s0, udp,4712,s0, tcp,9123,s0, udp,9123,s0, tcp, 9990, s0, tcp, 18001, s0)
+network_port(kerberos, tcp,88,s0, udp,88,s0, tcp,750,s0, udp,750,s0, tcp,4444,s0, udp,4444,s0)
+network_port(kerberos_admin, tcp,749,s0)
+network_port(kerberos_password, tcp,464,s0, udp,464,s0)
@@ -16078,7 +16161,7 @@ index 6a1e4d1..3ded83e 100644
+ dontaudit $1 domain:socket_class_set { read write };
')
diff --git a/policy/modules/kernel/domain.te b/policy/modules/kernel/domain.te
-index fae1ab1..a60d2f8 100644
+index fae1ab1..f9a1bcc 100644
--- a/policy/modules/kernel/domain.te
+++ b/policy/modules/kernel/domain.te
@@ -4,6 +4,21 @@ policy_module(domain, 1.9.1)
@@ -16162,16 +16245,22 @@ index fae1ab1..a60d2f8 100644
')
########################################
-@@ -143,6 +178,8 @@ allow unconfined_domain_type domain:{ socket_class_set socket key_socket } *;
+@@ -143,8 +178,13 @@ allow unconfined_domain_type domain:{ socket_class_set socket key_socket } *;
allow unconfined_domain_type domain:fd use;
allow unconfined_domain_type domain:fifo_file rw_file_perms;
+allow unconfined_domain_type unconfined_domain_type:dbus send_msg;
+
# Act upon any other process.
- allow unconfined_domain_type domain:process ~{ transition dyntransition execmem execstack execheap };
+-allow unconfined_domain_type domain:process ~{ transition dyntransition execmem execstack execheap };
++allow unconfined_domain_type domain:process ~{ ptrace transition dyntransition execmem execstack execheap };
++tunable_policy(`deny_ptrace',`',`
++ allow unconfined_domain_type domain:process ptrace;
++')
-@@ -158,5 +195,215 @@ allow unconfined_domain_type domain:lnk_file { read_lnk_file_perms ioctl lock };
+ # Create/access any System V IPC objects.
+ allow unconfined_domain_type domain:{ sem msgq shm } *;
+@@ -158,5 +198,217 @@ allow unconfined_domain_type domain:lnk_file { read_lnk_file_perms ioctl lock };
# act on all domains keys
allow unconfined_domain_type domain:key *;
@@ -16259,6 +16348,7 @@ index fae1ab1..a60d2f8 100644
+
+optional_policy(`
+ userdom_user_home_dir_filetrans_user_home_content(unconfined_domain_type, { dir file lnk_file fifo_file sock_file })
++ userdom_filetrans_home_content(unconfined_domain_type)
+')
+
+optional_policy(`
@@ -16387,6 +16477,7 @@ index fae1ab1..a60d2f8 100644
+')
+
+dontaudit domain domain:process { noatsecure siginh rlimitinh } ;
++dontaudit domain self:capability sys_ptrace;
diff --git a/policy/modules/kernel/files.fc b/policy/modules/kernel/files.fc
index c19518a..12e8e9c 100644
--- a/policy/modules/kernel/files.fc
@@ -19215,7 +19306,7 @@ index 6346378..8c500cd 100644
+')
+
diff --git a/policy/modules/kernel/kernel.te b/policy/modules/kernel/kernel.te
-index d91c62f..c857dc0 100644
+index d91c62f..8852535 100644
--- a/policy/modules/kernel/kernel.te
+++ b/policy/modules/kernel/kernel.te
@@ -1,5 +1,12 @@
@@ -19248,7 +19339,20 @@ index d91c62f..c857dc0 100644
# These initial sids are no longer used, and can be removed:
sid any_socket gen_context(system_u:object_r:unlabeled_t,mls_systemhigh)
-@@ -242,11 +252,14 @@ dev_search_usbfs(kernel_t)
+@@ -181,7 +191,11 @@ sid tcp_socket gen_context(system_u:object_r:unlabeled_t,mls_systemhigh)
+ # kernel local policy
+ #
+
+-allow kernel_t self:capability *;
++allow kernel_t self:capability ~{ sys_ptrace };
++tunable_policy(`deny_ptrace',`',`
++ allow kernel_t self:capability sys_ptrace;
++')
++
+ allow kernel_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimit execmem execstack execheap };
+ allow kernel_t self:shm create_shm_perms;
+ allow kernel_t self:sem create_sem_perms;
+@@ -242,11 +256,14 @@ dev_search_usbfs(kernel_t)
# devtmpfs handling:
dev_create_generic_dirs(kernel_t)
dev_delete_generic_dirs(kernel_t)
@@ -19267,7 +19371,7 @@ index d91c62f..c857dc0 100644
# Mount root file system. Used when loading a policy
# from initrd, then mounting the root filesystem
-@@ -255,7 +268,8 @@ fs_unmount_all_fs(kernel_t)
+@@ -255,7 +272,8 @@ fs_unmount_all_fs(kernel_t)
selinux_load_policy(kernel_t)
@@ -19277,7 +19381,7 @@ index d91c62f..c857dc0 100644
corecmd_exec_shell(kernel_t)
corecmd_list_bin(kernel_t)
-@@ -269,25 +283,47 @@ files_list_root(kernel_t)
+@@ -269,25 +287,47 @@ files_list_root(kernel_t)
files_list_etc(kernel_t)
files_list_home(kernel_t)
files_read_usr_files(kernel_t)
@@ -19325,7 +19429,7 @@ index d91c62f..c857dc0 100644
')
optional_policy(`
-@@ -297,6 +333,19 @@ optional_policy(`
+@@ -297,6 +337,19 @@ optional_policy(`
optional_policy(`
logging_send_syslog_msg(kernel_t)
@@ -19345,7 +19449,7 @@ index d91c62f..c857dc0 100644
')
optional_policy(`
-@@ -334,9 +383,7 @@ optional_policy(`
+@@ -334,9 +387,7 @@ optional_policy(`
fs_read_noxattr_fs_files(kernel_t)
fs_read_noxattr_fs_symlinks(kernel_t)
@@ -19356,7 +19460,7 @@ index d91c62f..c857dc0 100644
')
tunable_policy(`nfs_export_all_rw',`
-@@ -345,7 +392,7 @@ optional_policy(`
+@@ -345,7 +396,7 @@ optional_policy(`
fs_read_noxattr_fs_files(kernel_t)
fs_read_noxattr_fs_symlinks(kernel_t)
@@ -19365,7 +19469,7 @@ index d91c62f..c857dc0 100644
')
')
-@@ -358,6 +405,15 @@ optional_policy(`
+@@ -358,6 +409,15 @@ optional_policy(`
unconfined_domain_noaudit(kernel_t)
')
@@ -19381,10 +19485,12 @@ index d91c62f..c857dc0 100644
########################################
#
# Unlabeled process local policy
-@@ -387,3 +443,16 @@ allow kern_unconfined unlabeled_t:filesystem *;
+@@ -386,4 +446,17 @@ allow kern_unconfined unlabeled_t:dir_file_class_set *;
+ allow kern_unconfined unlabeled_t:filesystem *;
allow kern_unconfined unlabeled_t:association *;
allow kern_unconfined unlabeled_t:packet *;
- allow kern_unconfined unlabeled_t:process ~{ transition dyntransition execmem execstack execheap };
+-allow kern_unconfined unlabeled_t:process ~{ transition dyntransition execmem execstack execheap };
++allow kern_unconfined unlabeled_t:process ~{ ptrace transition dyntransition execmem execstack execheap };
+
+gen_require(`
+ bool secure_mode_insmod;
@@ -21018,9 +21124,18 @@ index 0faef68..4264c9c 100644
consoletype_exec(auditadm_t)
')
diff --git a/policy/modules/roles/dbadm.te b/policy/modules/roles/dbadm.te
-index 1875064..e9c9277 100644
+index 1875064..2adc35f 100644
--- a/policy/modules/roles/dbadm.te
+++ b/policy/modules/roles/dbadm.te
+@@ -28,7 +28,7 @@ userdom_base_user_template(dbadm)
+ # database admin local policy
+ #
+
+-allow dbadm_t self:capability { dac_override dac_read_search sys_ptrace };
++allow dbadm_t self:capability { dac_override dac_read_search };
+
+ files_dontaudit_search_all_dirs(dbadm_t)
+ files_delete_generic_locks(dbadm_t)
@@ -37,6 +37,7 @@ files_list_var(dbadm_t)
selinux_get_enforce_mode(dbadm_t)
@@ -21058,6 +21173,18 @@ index 1cb7311..1de82b2 100644
+')
+
+gen_user(guest_u, user, guest_r, s0, s0)
+diff --git a/policy/modules/roles/logadm.te b/policy/modules/roles/logadm.te
+index 3a45a3e..6b08160 100644
+--- a/policy/modules/roles/logadm.te
++++ b/policy/modules/roles/logadm.te
+@@ -14,6 +14,5 @@ userdom_base_user_template(logadm)
+ # logadmin local policy
+ #
+
+-allow logadm_t self:capability { dac_override dac_read_search kill sys_ptrace sys_nice };
+-
++allow logadm_t self:capability { dac_override dac_read_search kill sys_nice };
+ logging_admin(logadm_t, logadm_r)
diff --git a/policy/modules/roles/secadm.te b/policy/modules/roles/secadm.te
index be4de58..7e8b6ec 100644
--- a/policy/modules/roles/secadm.te
@@ -21082,7 +21209,7 @@ index be4de58..7e8b6ec 100644
init_exec(secadm_t)
diff --git a/policy/modules/roles/staff.te b/policy/modules/roles/staff.te
-index 2be17d2..e47e0f0 100644
+index 2be17d2..cfea862 100644
--- a/policy/modules/roles/staff.te
+++ b/policy/modules/roles/staff.te
@@ -8,12 +8,55 @@ policy_module(staff, 2.2.0)
@@ -21304,7 +21431,18 @@ index 2be17d2..e47e0f0 100644
xserver_role(staff_r, staff_t)
')
-@@ -89,18 +262,10 @@ ifndef(`distro_redhat',`
+@@ -61,6 +234,10 @@ ifndef(`distro_redhat',`
+ ')
+
+ optional_policy(`
++ blueman_dbus_chat(staff_t)
++ ')
++
++ optional_policy(`
+ bluetooth_role(staff_r, staff_t)
+ ')
+
+@@ -89,18 +266,10 @@ ifndef(`distro_redhat',`
')
optional_policy(`
@@ -21323,7 +21461,7 @@ index 2be17d2..e47e0f0 100644
java_role(staff_r, staff_t)
')
-@@ -121,10 +286,6 @@ ifndef(`distro_redhat',`
+@@ -121,10 +290,6 @@ ifndef(`distro_redhat',`
')
optional_policy(`
@@ -21334,7 +21472,7 @@ index 2be17d2..e47e0f0 100644
pyzor_role(staff_r, staff_t)
')
-@@ -137,10 +298,6 @@ ifndef(`distro_redhat',`
+@@ -137,10 +302,6 @@ ifndef(`distro_redhat',`
')
optional_policy(`
@@ -21345,7 +21483,7 @@ index 2be17d2..e47e0f0 100644
spamassassin_role(staff_r, staff_t)
')
-@@ -172,3 +329,7 @@ ifndef(`distro_redhat',`
+@@ -172,3 +333,7 @@ ifndef(`distro_redhat',`
wireshark_role(staff_r, staff_t)
')
')
@@ -21354,10 +21492,24 @@ index 2be17d2..e47e0f0 100644
+ userdom_execmod_user_home_files(staff_usertype)
+')
diff --git a/policy/modules/roles/sysadm.te b/policy/modules/roles/sysadm.te
-index e14b961..c6aa0bc 100644
+index e14b961..0d1af63 100644
--- a/policy/modules/roles/sysadm.te
+++ b/policy/modules/roles/sysadm.te
-@@ -24,20 +24,52 @@ ifndef(`enable_mls',`
+@@ -5,13 +5,6 @@ policy_module(sysadm, 2.2.1)
+ # Declarations
+ #
+
+-##