diff --git a/policy-rawhide.patch b/policy-rawhide.patch
index 4c08960..36b4027 100644
--- a/policy-rawhide.patch
+++ b/policy-rawhide.patch
@@ -62802,7 +62802,7 @@ index c6ca761..46e0767 100644
')
diff --git a/policy/modules/admin/netutils.te b/policy/modules/admin/netutils.te
-index e0791b9..9d5a8c0 100644
+index e0791b9..8ad5b9d 100644
--- a/policy/modules/admin/netutils.te
+++ b/policy/modules/admin/netutils.te
@@ -41,6 +41,7 @@ allow netutils_t self:packet_socket create_socket_perms;
@@ -62894,18 +62894,22 @@ index e0791b9..9d5a8c0 100644
pcmcia_use_cardmgr_fds(ping_t)
')
-@@ -157,6 +175,10 @@ optional_policy(`
+@@ -157,6 +175,14 @@ optional_policy(`
hotplug_use_fds(ping_t)
')
+optional_policy(`
++ openshift_rw_inherited_content(ping_t)
++')
++
++optional_policy(`
+ zabbix_read_tmp(ping_t)
+')
+
########################################
#
# Traceroute local policy
-@@ -170,7 +192,6 @@ allow traceroute_t self:udp_socket create_socket_perms;
+@@ -170,7 +196,6 @@ allow traceroute_t self:udp_socket create_socket_perms;
kernel_read_system_state(traceroute_t)
kernel_read_network_state(traceroute_t)
@@ -62913,7 +62917,7 @@ index e0791b9..9d5a8c0 100644
corenet_all_recvfrom_netlabel(traceroute_t)
corenet_tcp_sendrecv_generic_if(traceroute_t)
corenet_udp_sendrecv_generic_if(traceroute_t)
-@@ -194,6 +215,7 @@ fs_dontaudit_getattr_xattr_fs(traceroute_t)
+@@ -194,6 +219,7 @@ fs_dontaudit_getattr_xattr_fs(traceroute_t)
domain_use_interactive_fds(traceroute_t)
files_read_etc_files(traceroute_t)
@@ -62921,7 +62925,7 @@ index e0791b9..9d5a8c0 100644
files_dontaudit_search_var(traceroute_t)
init_use_fds(traceroute_t)
-@@ -204,9 +226,16 @@ logging_send_syslog_msg(traceroute_t)
+@@ -204,9 +230,16 @@ logging_send_syslog_msg(traceroute_t)
miscfiles_read_localization(traceroute_t)
@@ -68274,7 +68278,7 @@ index 6a1e4d1..eee8419 100644
+ dontaudit $1 domain:socket_class_set { read write };
')
diff --git a/policy/modules/kernel/domain.te b/policy/modules/kernel/domain.te
-index cf04cb5..b5b32d3 100644
+index cf04cb5..edd588e 100644
--- a/policy/modules/kernel/domain.te
+++ b/policy/modules/kernel/domain.te
@@ -4,6 +4,21 @@ policy_module(domain, 1.11.0)
@@ -68380,7 +68384,7 @@ index cf04cb5..b5b32d3 100644
# Create/access any System V IPC objects.
allow unconfined_domain_type domain:{ sem msgq shm } *;
-@@ -166,5 +211,259 @@ allow unconfined_domain_type domain:lnk_file { read_lnk_file_perms ioctl lock };
+@@ -166,5 +211,263 @@ allow unconfined_domain_type domain:lnk_file { read_lnk_file_perms ioctl lock };
# act on all domains keys
allow unconfined_domain_type domain:key *;
@@ -68626,6 +68630,10 @@ index cf04cb5..b5b32d3 100644
+# these seem questionable:
+
+optional_policy(`
++ puppet_rw_tmp(domain)
++')
++
++optional_policy(`
+ rpm_use_fds(domain)
+ rpm_read_pipes(domain)
+')
@@ -70653,7 +70661,7 @@ index e1e814d..76477ca 100644
+ files_etc_filetrans_etc_runtime($1, file, "iptables.save")
+')
diff --git a/policy/modules/kernel/files.te b/policy/modules/kernel/files.te
-index 52ef84e..14fabe2 100644
+index 52ef84e..59b37a3 100644
--- a/policy/modules/kernel/files.te
+++ b/policy/modules/kernel/files.te
@@ -10,7 +10,9 @@ attribute files_unconfined_type;
@@ -70728,7 +70736,12 @@ index 52ef84e..14fabe2 100644
########################################
#
-@@ -229,6 +245,6 @@ allow files_unconfined_type file_type:{ dir lnk_file sock_file fifo_file blk_fil
+@@ -225,10 +241,11 @@ fs_associate_tmpfs(tmpfsfile)
+ # Create/access any file in a labeled filesystem;
+ allow files_unconfined_type file_type:{ file chr_file } ~execmod;
+ allow files_unconfined_type file_type:{ dir lnk_file sock_file fifo_file blk_file } *;
++allow files_unconfined_type file_type:service *;
+
# Mount/unmount any filesystem with the context= option.
allow files_unconfined_type file_type:filesystem *;
@@ -73479,7 +73492,7 @@ index 7d45d15..22c9cfe 100644
+
+/usr/lib/udev/devices/pts -d gen_context(system_u:object_r:devpts_t,s0-mls_systemhigh)
diff --git a/policy/modules/kernel/terminal.if b/policy/modules/kernel/terminal.if
-index 01dd2f1..bce2776 100644
+index 01dd2f1..b62922c 100644
--- a/policy/modules/kernel/terminal.if
+++ b/policy/modules/kernel/terminal.if
@@ -124,7 +124,7 @@ interface(`term_user_tty',`
@@ -73591,6 +73604,15 @@ index 01dd2f1..bce2776 100644
## Do not audit attempts to read the
## /dev/pts directory.
##
+@@ -601,7 +660,7 @@ interface(`term_use_generic_ptys',`
+
+ ########################################
+ ##
+-## Dot not audit attempts to read and
++## Do not audit attempts to read and
+ ## write the generic pty type. This is
+ ## generally only used in the targeted policy.
+ ##
@@ -616,6 +675,7 @@ interface(`term_dontaudit_use_generic_ptys',`
type devpts_t;
')
@@ -75874,10 +75896,10 @@ index 0000000..bac0dc0
+
diff --git a/policy/modules/roles/unconfineduser.te b/policy/modules/roles/unconfineduser.te
new file mode 100644
-index 0000000..20bc285
+index 0000000..905a4b5
--- /dev/null
+++ b/policy/modules/roles/unconfineduser.te
-@@ -0,0 +1,384 @@
+@@ -0,0 +1,388 @@
+policy_module(unconfineduser, 1.0.0)
+
+########################################
@@ -76240,6 +76262,10 @@ index 0000000..20bc285
+')
+
+optional_policy(`
++ openshift_run(unconfined_usertype, unconfined_r)
++')
++
++optional_policy(`
+ usermanage_run_useradd(unconfined_t, unconfined_r)
+')
+
@@ -76739,7 +76765,7 @@ index 078bcd7..8ed5b99 100644
+/root/\.ssh(/.*)? gen_context(system_u:object_r:ssh_home_t,s0)
+/root/\.shosts gen_context(system_u:object_r:ssh_home_t,s0)
diff --git a/policy/modules/services/ssh.if b/policy/modules/services/ssh.if
-index fe0c682..61070e4 100644
+index fe0c682..b161c31 100644
--- a/policy/modules/services/ssh.if
+++ b/policy/modules/services/ssh.if
@@ -32,10 +32,11 @@
@@ -77218,7 +77244,7 @@ index fe0c682..61070e4 100644
')
######################################
-@@ -754,3 +894,64 @@ interface(`ssh_delete_tmp',`
+@@ -754,3 +894,101 @@ interface(`ssh_delete_tmp',`
files_search_tmp($1)
delete_files_pattern($1, sshd_tmp_t, sshd_tmp_t)
')
@@ -77283,8 +77309,45 @@ index fe0c682..61070e4 100644
+ userdom_user_home_dir_filetrans($1, ssh_home_t, dir, ".ssh")
+ userdom_user_home_dir_filetrans($1, ssh_home_t, dir, ".shosts")
+')
++
++########################################
++##
++## Do not audit attempts to read and
++## write the sshd pty type.
++##
++##
++##
++## Domain to not audit.
++##
++##
++#
++interface(`ssh_dontaudit_use_ptys',`
++ gen_require(`
++ type sshd_devpts_t;
++ ')
++
++ dontaudit $1 sshd_devpts_t:chr_file { getattr read write ioctl };
++')
++
++########################################
++##
++## Read and write inherited sshd pty type.
++##
++##
++##
++## Domain to not audit.
++##
++##
++#
++interface(`ssh_use_ptys',`
++ gen_require(`
++ type sshd_devpts_t;
++ ')
++
++ allow $1 sshd_devpts_t:chr_file { getattr read write ioctl };
++')
diff --git a/policy/modules/services/ssh.te b/policy/modules/services/ssh.te
-index b17e27a..5c691d1 100644
+index b17e27a..47fd62a 100644
--- a/policy/modules/services/ssh.te
+++ b/policy/modules/services/ssh.te
@@ -6,44 +6,51 @@ policy_module(ssh, 2.3.0)
@@ -77615,7 +77678,7 @@ index b17e27a..5c691d1 100644
')
optional_policy(`
-@@ -283,6 +330,15 @@ optional_policy(`
+@@ -283,6 +330,24 @@ optional_policy(`
')
optional_policy(`
@@ -77628,10 +77691,19 @@ index b17e27a..5c691d1 100644
+')
+
+optional_policy(`
++ openshift_dyntransition(sshd_t)
++ openshift_transition(sshd_t)
++ openshift_manage_tmp_files(sshd_t)
++ openshift_manage_tmp_sockets(sshd_t)
++ openshift_mounton_tmp(sshd_t)
++ openshift_search_lib(sshd_t)
++')
++
++optional_policy(`
unconfined_shell_domtrans(sshd_t)
')
-@@ -290,6 +346,29 @@ optional_policy(`
+@@ -290,6 +355,29 @@ optional_policy(`
xserver_domtrans_xauth(sshd_t)
')
@@ -77661,7 +77733,7 @@ index b17e27a..5c691d1 100644
########################################
#
# ssh_keygen local policy
-@@ -298,19 +377,26 @@ optional_policy(`
+@@ -298,19 +386,26 @@ optional_policy(`
# ssh_keygen_t is the type of the ssh-keygen program when run at install time
# and by sysadm_t
@@ -77689,7 +77761,7 @@ index b17e27a..5c691d1 100644
dev_read_urand(ssh_keygen_t)
term_dontaudit_use_console(ssh_keygen_t)
-@@ -327,9 +413,11 @@ auth_use_nsswitch(ssh_keygen_t)
+@@ -327,9 +422,11 @@ auth_use_nsswitch(ssh_keygen_t)
logging_send_syslog_msg(ssh_keygen_t)
userdom_dontaudit_use_unpriv_user_fds(ssh_keygen_t)
@@ -77703,7 +77775,7 @@ index b17e27a..5c691d1 100644
')
optional_policy(`
-@@ -339,3 +427,83 @@ optional_policy(`
+@@ -339,3 +436,83 @@ optional_policy(`
optional_policy(`
udev_read_db(ssh_keygen_t)
')
@@ -79249,7 +79321,7 @@ index 130ced9..1b31c76 100644
+ files_search_tmp($1)
+')
diff --git a/policy/modules/services/xserver.te b/policy/modules/services/xserver.te
-index d40f750..20ee046 100644
+index d40f750..29cb626 100644
--- a/policy/modules/services/xserver.te
+++ b/policy/modules/services/xserver.te
@@ -26,27 +26,50 @@ gen_require(`
@@ -79484,7 +79556,7 @@ index d40f750..20ee046 100644
')
########################################
-@@ -247,45 +311,78 @@ tunable_policy(`use_samba_home_dirs',`
+@@ -247,45 +311,81 @@ tunable_policy(`use_samba_home_dirs',`
# Xauth local policy
#
@@ -79518,6 +79590,9 @@ index d40f750..20ee046 100644
+kernel_read_system_state(xauth_t)
kernel_request_load_module(xauth_t)
++dev_read_rand(xauth_t)
++dev_read_urand(xauth_t)
++
domain_use_interactive_fds(xauth_t)
+domain_dontaudit_leaks(xauth_t)
@@ -79573,7 +79648,7 @@ index d40f750..20ee046 100644
')
optional_policy(`
-@@ -299,64 +396,105 @@ optional_policy(`
+@@ -299,64 +399,105 @@ optional_policy(`
# XDM Local policy
#
@@ -79689,7 +79764,7 @@ index d40f750..20ee046 100644
# connect to xdm xserver over stream socket
stream_connect_pattern(xdm_t, xserver_tmp_t, xserver_tmp_t, xserver_t)
-@@ -365,20 +503,27 @@ stream_connect_pattern(xdm_t, xserver_tmp_t, xserver_tmp_t, xserver_t)
+@@ -365,20 +506,27 @@ stream_connect_pattern(xdm_t, xserver_tmp_t, xserver_tmp_t, xserver_t)
delete_files_pattern(xdm_t, xserver_tmp_t, xserver_tmp_t)
delete_sock_files_pattern(xdm_t, xserver_tmp_t, xserver_tmp_t)
@@ -79719,7 +79794,7 @@ index d40f750..20ee046 100644
corenet_all_recvfrom_netlabel(xdm_t)
corenet_tcp_sendrecv_generic_if(xdm_t)
corenet_udp_sendrecv_generic_if(xdm_t)
-@@ -388,38 +533,48 @@ corenet_tcp_sendrecv_all_ports(xdm_t)
+@@ -388,38 +536,48 @@ corenet_tcp_sendrecv_all_ports(xdm_t)
corenet_udp_sendrecv_all_ports(xdm_t)
corenet_tcp_bind_generic_node(xdm_t)
corenet_udp_bind_generic_node(xdm_t)
@@ -79772,7 +79847,7 @@ index d40f750..20ee046 100644
files_read_etc_files(xdm_t)
files_read_var_files(xdm_t)
-@@ -430,9 +585,25 @@ files_list_mnt(xdm_t)
+@@ -430,9 +588,25 @@ files_list_mnt(xdm_t)
files_read_usr_files(xdm_t)
# Poweroff wants to create the /poweroff file when run from xdm
files_create_boot_flag(xdm_t)
@@ -79798,7 +79873,7 @@ index d40f750..20ee046 100644
storage_dontaudit_read_fixed_disk(xdm_t)
storage_dontaudit_write_fixed_disk(xdm_t)
-@@ -441,28 +612,38 @@ storage_dontaudit_raw_read_removable_device(xdm_t)
+@@ -441,28 +615,38 @@ storage_dontaudit_raw_read_removable_device(xdm_t)
storage_dontaudit_raw_write_removable_device(xdm_t)
storage_dontaudit_setattr_removable_dev(xdm_t)
storage_dontaudit_rw_scsi_generic(xdm_t)
@@ -79840,7 +79915,7 @@ index d40f750..20ee046 100644
userdom_dontaudit_use_unpriv_user_fds(xdm_t)
userdom_create_all_users_keys(xdm_t)
-@@ -471,24 +652,43 @@ userdom_read_user_home_content_files(xdm_t)
+@@ -471,24 +655,43 @@ userdom_read_user_home_content_files(xdm_t)
# Search /proc for any user domain processes.
userdom_read_all_users_state(xdm_t)
userdom_signal_all_users(xdm_t)
@@ -79890,7 +79965,7 @@ index d40f750..20ee046 100644
tunable_policy(`xdm_sysadm_login',`
userdom_xsession_spec_domtrans_all_users(xdm_t)
# FIXME:
-@@ -502,11 +702,21 @@ tunable_policy(`xdm_sysadm_login',`
+@@ -502,11 +705,21 @@ tunable_policy(`xdm_sysadm_login',`
')
optional_policy(`
@@ -79912,7 +79987,7 @@ index d40f750..20ee046 100644
')
optional_policy(`
-@@ -514,12 +724,64 @@ optional_policy(`
+@@ -514,12 +727,64 @@ optional_policy(`
')
optional_policy(`
@@ -79977,7 +80052,7 @@ index d40f750..20ee046 100644
hostname_exec(xdm_t)
')
-@@ -537,28 +799,69 @@ optional_policy(`
+@@ -537,28 +802,69 @@ optional_policy(`
')
optional_policy(`
@@ -80056,7 +80131,7 @@ index d40f750..20ee046 100644
')
optional_policy(`
-@@ -570,6 +873,14 @@ optional_policy(`
+@@ -570,6 +876,14 @@ optional_policy(`
')
optional_policy(`
@@ -80071,7 +80146,7 @@ index d40f750..20ee046 100644
xfs_stream_connect(xdm_t)
')
-@@ -594,8 +905,11 @@ allow xserver_t input_xevent_t:x_event send;
+@@ -594,8 +908,11 @@ allow xserver_t input_xevent_t:x_event send;
# execheap needed until the X module loader is fixed.
# NVIDIA Needs execstack
@@ -80084,7 +80159,7 @@ index d40f750..20ee046 100644
allow xserver_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimit execmem execstack execheap };
allow xserver_t self:fd use;
allow xserver_t self:fifo_file rw_fifo_file_perms;
-@@ -608,8 +922,15 @@ allow xserver_t self:unix_dgram_socket { create_socket_perms sendto };
+@@ -608,8 +925,15 @@ 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;
@@ -80100,7 +80175,7 @@ index d40f750..20ee046 100644
manage_dirs_pattern(xserver_t, xserver_tmp_t, xserver_tmp_t)
manage_files_pattern(xserver_t, xserver_tmp_t, xserver_tmp_t)
manage_sock_files_pattern(xserver_t, xserver_tmp_t, xserver_tmp_t)
-@@ -628,12 +949,19 @@ manage_files_pattern(xserver_t, xkb_var_lib_t, xkb_var_lib_t)
+@@ -628,12 +952,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)
@@ -80122,7 +80197,7 @@ index d40f750..20ee046 100644
kernel_read_system_state(xserver_t)
kernel_read_device_sysctls(xserver_t)
-@@ -641,12 +969,12 @@ kernel_read_modprobe_sysctls(xserver_t)
+@@ -641,12 +972,12 @@ 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)
@@ -80136,7 +80211,7 @@ index d40f750..20ee046 100644
corenet_all_recvfrom_netlabel(xserver_t)
corenet_tcp_sendrecv_generic_if(xserver_t)
corenet_udp_sendrecv_generic_if(xserver_t)
-@@ -667,23 +995,28 @@ dev_rw_apm_bios(xserver_t)
+@@ -667,23 +998,28 @@ dev_rw_apm_bios(xserver_t)
dev_rw_agp(xserver_t)
dev_rw_framebuffer(xserver_t)
dev_manage_dri_dev(xserver_t)
@@ -80168,7 +80243,7 @@ index d40f750..20ee046 100644
# brought on by rhgb
files_search_mnt(xserver_t)
-@@ -694,8 +1027,13 @@ fs_getattr_xattr_fs(xserver_t)
+@@ -694,8 +1030,13 @@ fs_getattr_xattr_fs(xserver_t)
fs_search_nfs(xserver_t)
fs_search_auto_mountpoints(xserver_t)
fs_search_ramfs(xserver_t)
@@ -80182,7 +80257,7 @@ index d40f750..20ee046 100644
selinux_validate_context(xserver_t)
selinux_compute_access_vector(xserver_t)
-@@ -708,8 +1046,6 @@ init_getpgid(xserver_t)
+@@ -708,8 +1049,6 @@ init_getpgid(xserver_t)
term_setattr_unallocated_ttys(xserver_t)
term_use_unallocated_ttys(xserver_t)
@@ -80191,7 +80266,7 @@ index d40f750..20ee046 100644
locallogin_use_fds(xserver_t)
logging_send_syslog_msg(xserver_t)
-@@ -717,11 +1053,12 @@ logging_send_audit_msgs(xserver_t)
+@@ -717,11 +1056,12 @@ logging_send_audit_msgs(xserver_t)
miscfiles_read_localization(xserver_t)
miscfiles_read_fonts(xserver_t)
@@ -80206,7 +80281,7 @@ index d40f750..20ee046 100644
userdom_search_user_home_dirs(xserver_t)
userdom_use_user_ttys(xserver_t)
-@@ -775,16 +1112,40 @@ optional_policy(`
+@@ -775,16 +1115,40 @@ optional_policy(`
')
optional_policy(`
@@ -80248,7 +80323,7 @@ index d40f750..20ee046 100644
unconfined_domtrans(xserver_t)
')
-@@ -793,6 +1154,10 @@ optional_policy(`
+@@ -793,6 +1157,10 @@ optional_policy(`
')
optional_policy(`
@@ -80259,7 +80334,7 @@ index d40f750..20ee046 100644
xfs_stream_connect(xserver_t)
')
-@@ -808,10 +1173,10 @@ allow xserver_t xdm_t:shm rw_shm_perms;
+@@ -808,10 +1176,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!!!
@@ -80273,7 +80348,7 @@ index d40f750..20ee046 100644
# Label pid and temporary files with derived types.
manage_files_pattern(xserver_t, xdm_tmp_t, xdm_tmp_t)
-@@ -819,7 +1184,7 @@ manage_lnk_files_pattern(xserver_t, xdm_tmp_t, xdm_tmp_t)
+@@ -819,7 +1187,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.
@@ -80282,7 +80357,7 @@ index d40f750..20ee046 100644
can_exec(xserver_t, xkb_var_lib_t)
# VNC v4 module in X server
-@@ -832,26 +1197,21 @@ init_use_fds(xserver_t)
+@@ -832,26 +1200,21 @@ init_use_fds(xserver_t)
# to read ROLE_home_t - examine this in more detail
# (xauth?)
userdom_read_user_home_content_files(xserver_t)
@@ -80317,7 +80392,7 @@ index d40f750..20ee046 100644
')
optional_policy(`
-@@ -859,6 +1219,10 @@ optional_policy(`
+@@ -859,6 +1222,10 @@ optional_policy(`
rhgb_rw_tmpfs_files(xserver_t)
')
@@ -80328,7 +80403,7 @@ index d40f750..20ee046 100644
########################################
#
# Rules common to all X window domains
-@@ -902,7 +1266,7 @@ allow x_domain xproperty_t:x_property { getattr create read write append destroy
+@@ -902,7 +1269,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 };
@@ -80337,7 +80412,7 @@ index d40f750..20ee046 100644
# operations allowed on all windows
allow x_domain x_domain:x_drawable { getattr get_property set_property remove_child };
-@@ -956,11 +1320,31 @@ allow x_domain self:x_resource { read write };
+@@ -956,11 +1323,31 @@ allow x_domain self:x_resource { read write };
# can mess with the screensaver
allow x_domain xserver_t:x_screen { getattr saver_getattr };
@@ -80369,7 +80444,7 @@ index d40f750..20ee046 100644
tunable_policy(`! xserver_object_manager',`
# should be xserver_unconfined(x_domain),
# but typeattribute doesnt work in conditionals
-@@ -982,18 +1366,44 @@ tunable_policy(`! xserver_object_manager',`
+@@ -982,18 +1369,44 @@ tunable_policy(`! xserver_object_manager',`
allow x_domain xevent_type:{ x_event x_synthetic_event } *;
')
@@ -83178,7 +83253,7 @@ index d26fe81..efdc556 100644
+ allow $1 init_t:system undefined;
+')
diff --git a/policy/modules/system/init.te b/policy/modules/system/init.te
-index 4a88fa1..fb77fcb 100644
+index 4a88fa1..c9eef60 100644
--- a/policy/modules/system/init.te
+++ b/policy/modules/system/init.te
@@ -16,6 +16,34 @@ gen_require(`
@@ -83426,7 +83501,7 @@ index 4a88fa1..fb77fcb 100644
corecmd_shell_domtrans(init_t, initrc_t)
',`
# Run the shell in the sysadm role for single-user mode.
-@@ -196,16 +301,154 @@ tunable_policy(`init_upstart',`
+@@ -196,16 +301,158 @@ tunable_policy(`init_upstart',`
sysadm_shell_domtrans(init_t)
')
@@ -83435,6 +83510,7 @@ index 4a88fa1..fb77fcb 100644
optional_policy(`
- auth_rw_login_records(init_t)
+ modutils_domtrans_insmod(init_t)
++ modutils_list_module_config(init_t)
')
optional_policy(`
@@ -83501,6 +83577,7 @@ index 4a88fa1..fb77fcb 100644
+ files_list_var(init_t)
+ files_create_lock_dirs(init_t)
+ files_relabel_all_lock_dirs(init_t)
++ files_read_kernel_modules(init_t)
+
+ fs_getattr_all_fs(init_t)
+ fs_manage_cgroup_dirs(init_t)
@@ -83545,6 +83622,8 @@ index 4a88fa1..fb77fcb 100644
+ systemd_logger_stream_connect(init_t)
+ systemd_config_all_services(init_t)
+ systemd_relabelto_fifo_file_passwd_run(init_t)
++ systemd_relabel_unit_dirs(init_t)
++ systemd_relabel_unit_files(init_t)
+ systemd_config_all_services(initrc_t)
+
+ create_sock_files_pattern(init_t, init_sock_file_type, init_sock_file_type)
@@ -83583,7 +83662,7 @@ index 4a88fa1..fb77fcb 100644
')
optional_policy(`
-@@ -213,6 +456,22 @@ optional_policy(`
+@@ -213,6 +460,22 @@ optional_policy(`
')
optional_policy(`
@@ -83606,7 +83685,7 @@ index 4a88fa1..fb77fcb 100644
unconfined_domain(init_t)
')
-@@ -222,8 +481,9 @@ optional_policy(`
+@@ -222,8 +485,9 @@ optional_policy(`
#
allow initrc_t self:process { getpgid setsched setpgid setrlimit getsched };
@@ -83618,7 +83697,7 @@ index 4a88fa1..fb77fcb 100644
allow initrc_t self:passwd rootok;
allow initrc_t self:key manage_key_perms;
-@@ -251,12 +511,15 @@ manage_fifo_files_pattern(initrc_t, initrc_state_t, initrc_state_t)
+@@ -251,12 +515,15 @@ manage_fifo_files_pattern(initrc_t, initrc_state_t, initrc_state_t)
allow initrc_t initrc_var_run_t:file manage_file_perms;
files_pid_filetrans(initrc_t, initrc_var_run_t, file)
@@ -83634,7 +83713,7 @@ index 4a88fa1..fb77fcb 100644
manage_dirs_pattern(initrc_t, initrc_var_log_t, initrc_var_log_t)
manage_files_pattern(initrc_t, initrc_var_log_t, initrc_var_log_t)
-@@ -272,23 +535,36 @@ kernel_change_ring_buffer_level(initrc_t)
+@@ -272,23 +539,36 @@ kernel_change_ring_buffer_level(initrc_t)
kernel_clear_ring_buffer(initrc_t)
kernel_get_sysvipc_info(initrc_t)
kernel_read_all_sysctls(initrc_t)
@@ -83677,7 +83756,7 @@ index 4a88fa1..fb77fcb 100644
corenet_tcp_sendrecv_all_ports(initrc_t)
corenet_udp_sendrecv_all_ports(initrc_t)
corenet_tcp_connect_all_ports(initrc_t)
-@@ -296,6 +572,7 @@ corenet_sendrecv_all_client_packets(initrc_t)
+@@ -296,6 +576,7 @@ corenet_sendrecv_all_client_packets(initrc_t)
dev_read_rand(initrc_t)
dev_read_urand(initrc_t)
@@ -83685,7 +83764,7 @@ index 4a88fa1..fb77fcb 100644
dev_write_kmsg(initrc_t)
dev_write_rand(initrc_t)
dev_write_urand(initrc_t)
-@@ -306,8 +583,10 @@ dev_write_framebuffer(initrc_t)
+@@ -306,8 +587,10 @@ dev_write_framebuffer(initrc_t)
dev_read_realtime_clock(initrc_t)
dev_read_sound_mixer(initrc_t)
dev_write_sound_mixer(initrc_t)
@@ -83696,7 +83775,7 @@ index 4a88fa1..fb77fcb 100644
dev_delete_lvm_control_dev(initrc_t)
dev_manage_generic_symlinks(initrc_t)
dev_manage_generic_files(initrc_t)
-@@ -315,17 +594,16 @@ dev_manage_generic_files(initrc_t)
+@@ -315,17 +598,16 @@ dev_manage_generic_files(initrc_t)
dev_delete_generic_symlinks(initrc_t)
dev_getattr_all_blk_files(initrc_t)
dev_getattr_all_chr_files(initrc_t)
@@ -83716,7 +83795,7 @@ index 4a88fa1..fb77fcb 100644
domain_getsession_all_domains(initrc_t)
domain_use_interactive_fds(initrc_t)
# for lsof which is used by alsa shutdown:
-@@ -333,6 +611,7 @@ domain_dontaudit_getattr_all_udp_sockets(initrc_t)
+@@ -333,6 +615,7 @@ domain_dontaudit_getattr_all_udp_sockets(initrc_t)
domain_dontaudit_getattr_all_tcp_sockets(initrc_t)
domain_dontaudit_getattr_all_dgram_sockets(initrc_t)
domain_dontaudit_getattr_all_pipes(initrc_t)
@@ -83724,7 +83803,7 @@ index 4a88fa1..fb77fcb 100644
files_getattr_all_dirs(initrc_t)
files_getattr_all_files(initrc_t)
-@@ -340,8 +619,10 @@ files_getattr_all_symlinks(initrc_t)
+@@ -340,8 +623,10 @@ files_getattr_all_symlinks(initrc_t)
files_getattr_all_pipes(initrc_t)
files_getattr_all_sockets(initrc_t)
files_purge_tmp(initrc_t)
@@ -83736,7 +83815,7 @@ index 4a88fa1..fb77fcb 100644
files_delete_all_pids(initrc_t)
files_delete_all_pid_dirs(initrc_t)
files_read_etc_files(initrc_t)
-@@ -357,8 +638,12 @@ files_list_isid_type_dirs(initrc_t)
+@@ -357,8 +642,12 @@ files_list_isid_type_dirs(initrc_t)
files_mounton_isid_type_dirs(initrc_t)
files_list_default(initrc_t)
files_mounton_default(initrc_t)
@@ -83750,7 +83829,7 @@ index 4a88fa1..fb77fcb 100644
fs_list_inotifyfs(initrc_t)
fs_register_binary_executable_type(initrc_t)
# rhgb-console writes to ramfs
-@@ -368,9 +653,12 @@ fs_mount_all_fs(initrc_t)
+@@ -368,9 +657,12 @@ fs_mount_all_fs(initrc_t)
fs_unmount_all_fs(initrc_t)
fs_remount_all_fs(initrc_t)
fs_getattr_all_fs(initrc_t)
@@ -83764,7 +83843,7 @@ index 4a88fa1..fb77fcb 100644
mcs_killall(initrc_t)
mcs_process_set_categories(initrc_t)
-@@ -380,6 +668,7 @@ mls_process_read_up(initrc_t)
+@@ -380,6 +672,7 @@ mls_process_read_up(initrc_t)
mls_process_write_down(initrc_t)
mls_rangetrans_source(initrc_t)
mls_fd_share_all_levels(initrc_t)
@@ -83772,7 +83851,7 @@ index 4a88fa1..fb77fcb 100644
selinux_get_enforce_mode(initrc_t)
-@@ -391,6 +680,7 @@ term_use_all_terms(initrc_t)
+@@ -391,6 +684,7 @@ term_use_all_terms(initrc_t)
term_reset_tty_labels(initrc_t)
auth_rw_login_records(initrc_t)
@@ -83780,7 +83859,7 @@ index 4a88fa1..fb77fcb 100644
auth_setattr_login_records(initrc_t)
auth_rw_lastlog(initrc_t)
auth_read_pam_pid(initrc_t)
-@@ -411,18 +701,17 @@ logging_read_audit_config(initrc_t)
+@@ -411,18 +705,17 @@ logging_read_audit_config(initrc_t)
miscfiles_read_localization(initrc_t)
# slapd needs to read cert files from its initscript
@@ -83802,7 +83881,7 @@ index 4a88fa1..fb77fcb 100644
ifdef(`distro_debian',`
dev_setattr_generic_dirs(initrc_t)
-@@ -476,6 +765,10 @@ ifdef(`distro_gentoo',`
+@@ -476,6 +769,10 @@ ifdef(`distro_gentoo',`
sysnet_setattr_config(initrc_t)
optional_policy(`
@@ -83813,7 +83892,7 @@ index 4a88fa1..fb77fcb 100644
alsa_read_lib(initrc_t)
')
-@@ -496,7 +789,7 @@ ifdef(`distro_redhat',`
+@@ -496,7 +793,7 @@ ifdef(`distro_redhat',`
# Red Hat systems seem to have a stray
# fd open from the initrd
@@ -83822,7 +83901,7 @@ index 4a88fa1..fb77fcb 100644
files_dontaudit_read_root_files(initrc_t)
# These seem to be from the initrd
-@@ -511,6 +804,7 @@ ifdef(`distro_redhat',`
+@@ -511,6 +808,7 @@ ifdef(`distro_redhat',`
files_create_boot_dirs(initrc_t)
files_create_boot_flag(initrc_t)
files_rw_boot_symlinks(initrc_t)
@@ -83830,7 +83909,7 @@ index 4a88fa1..fb77fcb 100644
# wants to read /.fonts directory
files_read_default_files(initrc_t)
files_mountpoint(initrc_tmp_t)
-@@ -531,6 +825,7 @@ ifdef(`distro_redhat',`
+@@ -531,6 +829,7 @@ ifdef(`distro_redhat',`
miscfiles_rw_localization(initrc_t)
miscfiles_setattr_localization(initrc_t)
miscfiles_relabel_localization(initrc_t)
@@ -83838,7 +83917,7 @@ index 4a88fa1..fb77fcb 100644
miscfiles_read_fonts(initrc_t)
miscfiles_read_hwdata(initrc_t)
-@@ -540,8 +835,35 @@ ifdef(`distro_redhat',`
+@@ -540,8 +839,35 @@ ifdef(`distro_redhat',`
')
optional_policy(`
@@ -83874,7 +83953,7 @@ index 4a88fa1..fb77fcb 100644
')
optional_policy(`
-@@ -549,14 +871,27 @@ ifdef(`distro_redhat',`
+@@ -549,14 +875,27 @@ ifdef(`distro_redhat',`
rpc_write_exports(initrc_t)
rpc_manage_nfs_state_data(initrc_t)
')
@@ -83902,7 +83981,7 @@ index 4a88fa1..fb77fcb 100644
')
')
-@@ -567,6 +902,39 @@ ifdef(`distro_suse',`
+@@ -567,6 +906,39 @@ ifdef(`distro_suse',`
')
')
@@ -83942,7 +84021,7 @@ index 4a88fa1..fb77fcb 100644
optional_policy(`
amavis_search_lib(initrc_t)
amavis_setattr_pid_files(initrc_t)
-@@ -579,6 +947,8 @@ optional_policy(`
+@@ -579,6 +951,8 @@ optional_policy(`
optional_policy(`
apache_read_config(initrc_t)
apache_list_modules(initrc_t)
@@ -83951,7 +84030,7 @@ index 4a88fa1..fb77fcb 100644
')
optional_policy(`
-@@ -600,6 +970,7 @@ optional_policy(`
+@@ -600,6 +974,7 @@ optional_policy(`
optional_policy(`
cgroup_stream_connect_cgred(initrc_t)
@@ -83959,7 +84038,7 @@ index 4a88fa1..fb77fcb 100644
')
optional_policy(`
-@@ -612,6 +983,17 @@ optional_policy(`
+@@ -612,6 +987,17 @@ optional_policy(`
')
optional_policy(`
@@ -83977,7 +84056,7 @@ index 4a88fa1..fb77fcb 100644
dev_getattr_printer_dev(initrc_t)
cups_read_log(initrc_t)
-@@ -628,9 +1010,13 @@ optional_policy(`
+@@ -628,9 +1014,13 @@ optional_policy(`
dbus_connect_system_bus(initrc_t)
dbus_system_bus_client(initrc_t)
dbus_read_config(initrc_t)
@@ -83991,7 +84070,7 @@ index 4a88fa1..fb77fcb 100644
')
optional_policy(`
-@@ -655,6 +1041,10 @@ optional_policy(`
+@@ -655,6 +1045,10 @@ optional_policy(`
')
optional_policy(`
@@ -84002,7 +84081,7 @@ index 4a88fa1..fb77fcb 100644
gpm_setattr_gpmctl(initrc_t)
')
-@@ -672,6 +1062,15 @@ optional_policy(`
+@@ -672,6 +1066,15 @@ optional_policy(`
')
optional_policy(`
@@ -84018,7 +84097,7 @@ index 4a88fa1..fb77fcb 100644
inn_exec_config(initrc_t)
')
-@@ -712,6 +1111,7 @@ optional_policy(`
+@@ -712,6 +1115,7 @@ optional_policy(`
lpd_list_spool(initrc_t)
lpd_read_config(initrc_t)
@@ -84026,7 +84105,7 @@ index 4a88fa1..fb77fcb 100644
')
optional_policy(`
-@@ -729,7 +1129,14 @@ optional_policy(`
+@@ -729,7 +1133,14 @@ optional_policy(`
')
optional_policy(`
@@ -84041,7 +84120,7 @@ index 4a88fa1..fb77fcb 100644
mta_dontaudit_read_spool_symlinks(initrc_t)
')
-@@ -752,6 +1159,10 @@ optional_policy(`
+@@ -752,6 +1163,10 @@ optional_policy(`
')
optional_policy(`
@@ -84052,7 +84131,7 @@ index 4a88fa1..fb77fcb 100644
postgresql_manage_db(initrc_t)
postgresql_read_config(initrc_t)
')
-@@ -761,10 +1172,20 @@ optional_policy(`
+@@ -761,10 +1176,20 @@ optional_policy(`
')
optional_policy(`
@@ -84073,7 +84152,7 @@ index 4a88fa1..fb77fcb 100644
quota_manage_flags(initrc_t)
')
-@@ -773,6 +1194,10 @@ optional_policy(`
+@@ -773,6 +1198,10 @@ optional_policy(`
')
optional_policy(`
@@ -84084,7 +84163,7 @@ index 4a88fa1..fb77fcb 100644
fs_write_ramfs_sockets(initrc_t)
fs_search_ramfs(initrc_t)
-@@ -794,8 +1219,6 @@ optional_policy(`
+@@ -794,8 +1223,6 @@ optional_policy(`
# bash tries ioctl for some reason
files_dontaudit_ioctl_all_pids(initrc_t)
@@ -84093,7 +84172,7 @@ index 4a88fa1..fb77fcb 100644
')
optional_policy(`
-@@ -804,6 +1227,10 @@ optional_policy(`
+@@ -804,6 +1231,10 @@ optional_policy(`
')
optional_policy(`
@@ -84104,7 +84183,7 @@ index 4a88fa1..fb77fcb 100644
# shorewall-init script run /var/lib/shorewall/firewall
shorewall_lib_domtrans(initrc_t)
')
-@@ -813,10 +1240,12 @@ optional_policy(`
+@@ -813,10 +1244,12 @@ optional_policy(`
squid_manage_logs(initrc_t)
')
@@ -84117,7 +84196,7 @@ index 4a88fa1..fb77fcb 100644
optional_policy(`
ssh_dontaudit_read_server_keys(initrc_t)
-@@ -828,8 +1257,6 @@ optional_policy(`
+@@ -828,8 +1261,6 @@ optional_policy(`
')
optional_policy(`
@@ -84126,7 +84205,7 @@ index 4a88fa1..fb77fcb 100644
udev_manage_pid_files(initrc_t)
udev_manage_pid_dirs(initrc_t)
udev_manage_rules_files(initrc_t)
-@@ -840,12 +1267,30 @@ optional_policy(`
+@@ -840,12 +1271,30 @@ optional_policy(`
')
optional_policy(`
@@ -84159,7 +84238,7 @@ index 4a88fa1..fb77fcb 100644
ifdef(`distro_redhat',`
# system-config-services causes avc messages that should be dontaudited
-@@ -855,6 +1300,18 @@ optional_policy(`
+@@ -855,6 +1304,18 @@ optional_policy(`
optional_policy(`
mono_domtrans(initrc_t)
')
@@ -84178,7 +84257,7 @@ index 4a88fa1..fb77fcb 100644
')
optional_policy(`
-@@ -870,6 +1327,10 @@ optional_policy(`
+@@ -870,6 +1331,10 @@ optional_policy(`
')
optional_policy(`
@@ -84189,7 +84268,7 @@ index 4a88fa1..fb77fcb 100644
# Set device ownerships/modes.
xserver_setattr_console_pipes(initrc_t)
-@@ -880,3 +1341,164 @@ optional_policy(`
+@@ -880,3 +1345,164 @@ optional_policy(`
optional_policy(`
zebra_read_config(initrc_t)
')
@@ -86049,7 +86128,7 @@ index 321bb13..e7fd936 100644
+ init_named_pid_filetrans($1, syslogd_var_run_t, dir, "journal")
+')
diff --git a/policy/modules/system/logging.te b/policy/modules/system/logging.te
-index 0034021..8c87704 100644
+index 0034021..2d55123 100644
--- a/policy/modules/system/logging.te
+++ b/policy/modules/system/logging.te
@@ -5,6 +5,20 @@ policy_module(logging, 1.19.0)
@@ -86258,19 +86337,21 @@ index 0034021..8c87704 100644
kernel_read_system_state(syslogd_t)
kernel_read_kernel_sysctls(syslogd_t)
kernel_read_proc_symlinks(syslogd_t)
-@@ -401,7 +453,10 @@ kernel_read_messages(syslogd_t)
+@@ -400,8 +452,12 @@ kernel_read_proc_symlinks(syslogd_t)
+ kernel_read_messages(syslogd_t)
kernel_clear_ring_buffer(syslogd_t)
kernel_change_ring_buffer_level(syslogd_t)
-
--corenet_all_recvfrom_unlabeled(syslogd_t)
++kernel_read_ring_buffer(syslogd_t)
++
+ifdef(`hide_broken_symptoms',`
+ kernel_rw_unix_dgram_sockets(syslogd_t)
+')
-+
+
+-corenet_all_recvfrom_unlabeled(syslogd_t)
corenet_all_recvfrom_netlabel(syslogd_t)
corenet_udp_sendrecv_generic_if(syslogd_t)
corenet_udp_sendrecv_generic_node(syslogd_t)
-@@ -427,10 +482,27 @@ corenet_sendrecv_syslogd_server_packets(syslogd_t)
+@@ -427,10 +483,28 @@ corenet_sendrecv_syslogd_server_packets(syslogd_t)
corenet_sendrecv_postgresql_client_packets(syslogd_t)
corenet_sendrecv_mysqld_client_packets(syslogd_t)
@@ -86290,6 +86371,7 @@ index 0034021..8c87704 100644
+dev_read_urand(syslogd_t)
+# relating to systemd-kmsg-syslogd
+dev_write_kmsg(syslogd_t)
++dev_read_kmsg(syslogd_t)
+domain_read_all_domains_state(syslogd_t)
domain_use_interactive_fds(syslogd_t)
@@ -86298,7 +86380,7 @@ index 0034021..8c87704 100644
files_read_etc_files(syslogd_t)
files_read_usr_files(syslogd_t)
-@@ -442,13 +514,16 @@ files_read_kernel_symbol_table(syslogd_t)
+@@ -442,13 +516,16 @@ files_read_kernel_symbol_table(syslogd_t)
fs_getattr_all_fs(syslogd_t)
fs_search_auto_mountpoints(syslogd_t)
@@ -86315,7 +86397,7 @@ index 0034021..8c87704 100644
# for sending messages to logged in users
init_read_utmp(syslogd_t)
init_dontaudit_write_utmp(syslogd_t)
-@@ -460,6 +535,7 @@ init_use_fds(syslogd_t)
+@@ -460,6 +537,7 @@ init_use_fds(syslogd_t)
# cjp: this doesnt make sense
logging_send_syslog_msg(syslogd_t)
@@ -86323,7 +86405,7 @@ index 0034021..8c87704 100644
miscfiles_read_localization(syslogd_t)
-@@ -493,15 +569,29 @@ optional_policy(`
+@@ -493,15 +571,29 @@ optional_policy(`
')
optional_policy(`
@@ -90169,10 +90251,10 @@ index 0000000..7da5bf6
+/var/run/initramfs(/.*)? <>
diff --git a/policy/modules/system/systemd.if b/policy/modules/system/systemd.if
new file mode 100644
-index 0000000..846c140
+index 0000000..23bac8e
--- /dev/null
+++ b/policy/modules/system/systemd.if
-@@ -0,0 +1,756 @@
+@@ -0,0 +1,792 @@
+## SELinux policy for systemd components
+
+#######################################
@@ -90667,6 +90749,42 @@ index 0000000..846c140
+
+#######################################
+##
++## Relabel systemd unit directories
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`systemd_relabel_unit_dirs',`
++ gen_require(`
++ attribute systemd_unit_file_type;
++ ')
++
++ relabel_dirs_pattern($1, systemd_unit_file_type, systemd_unit_file_type)
++')
++
++#######################################
++##
++## Relabel systemd unit files
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`systemd_relabel_unit_files',`
++ gen_require(`
++ attribute systemd_unit_file_type;
++ ')
++
++ relabel_files_pattern($1, systemd_unit_file_type, systemd_unit_file_type)
++')
++
++#######################################
++##
+## Send generic signals to systemd_passwd_agent processes.
+##
+##
diff --git a/policy_contrib-rawhide.patch b/policy_contrib-rawhide.patch
index 91c8035..640d620 100644
--- a/policy_contrib-rawhide.patch
+++ b/policy_contrib-rawhide.patch
@@ -2029,7 +2029,7 @@ index fd9fa07..c0ecd7e 100644
+/var/run/dirsrv/admin-serv.* gen_context(system_u:object_r:httpd_var_run_t,s0)
+/opt/dirsrv/var/run/dirsrv/dsgw/cookies(/.*)? gen_context(system_u:object_r:httpd_var_run_t,s0)
diff --git a/apache.if b/apache.if
-index 6480167..d30bdbf 100644
+index 6480167..273a121 100644
--- a/apache.if
+++ b/apache.if
@@ -13,62 +13,46 @@
@@ -2674,7 +2674,7 @@ index 6480167..d30bdbf 100644
admin_pattern($1, httpd_log_t)
admin_pattern($1, httpd_modules_t)
-@@ -1205,14 +1349,88 @@ interface(`apache_admin',`
+@@ -1205,14 +1349,106 @@ interface(`apache_admin',`
admin_pattern($1, httpd_var_run_t)
files_pid_filetrans($1, httpd_var_run_t, file)
@@ -2747,6 +2747,24 @@ index 6480167..d30bdbf 100644
+
+########################################
+##
++## Allow any httpd_exec_t to be an entrypoint of this domain
++##
++##
++##
++## Domain allowed access.
++##
++##
++##
++#
++interface(`apache_entrypoint',`
++ gen_require(`
++ type httpd_exec_t;
++ ')
++ allow $1 httpd_exec_t:file entrypoint;
++')
++
++########################################
++##
+## Transition to apache home content
+##
+##
@@ -2769,7 +2787,7 @@ index 6480167..d30bdbf 100644
+ filetrans_pattern($1, { httpd_user_content_t httpd_user_script_exec_t }, httpd_user_htaccess_t, file, ".htaccess")
')
diff --git a/apache.te b/apache.te
-index 0833afb..18e92f6 100644
+index 0833afb..e901478 100644
--- a/apache.te
+++ b/apache.te
@@ -18,6 +18,8 @@ policy_module(apache, 2.4.0)
@@ -3478,7 +3496,7 @@ index 0833afb..18e92f6 100644
')
optional_policy(`
-@@ -594,6 +930,34 @@ optional_policy(`
+@@ -594,6 +930,37 @@ optional_policy(`
')
optional_policy(`
@@ -3492,6 +3510,9 @@ index 0833afb..18e92f6 100644
+ passenger_exec(httpd_t)
+ passenger_manage_pid_content(httpd_t)
+ passenger_manage_lib_files(httpd_t)
++ files_dontaudit_getattr_all_files(httpd_t)
++ domain_dontaudit_read_all_domains_state(httpd_t)
++ domain_getpgid_all_domains(httpd_t)
+ ',`
+ passenger_domtrans(httpd_t)
+ passenger_manage_pid_content(httpd_t)
@@ -3513,7 +3534,7 @@ index 0833afb..18e92f6 100644
# Allow httpd to work with postgresql
postgresql_stream_connect(httpd_t)
postgresql_unpriv_client(httpd_t)
-@@ -608,6 +972,11 @@ optional_policy(`
+@@ -608,6 +975,11 @@ optional_policy(`
')
optional_policy(`
@@ -3525,7 +3546,7 @@ index 0833afb..18e92f6 100644
snmp_dontaudit_read_snmp_var_lib_files(httpd_t)
snmp_dontaudit_write_snmp_var_lib_files(httpd_t)
')
-@@ -620,6 +989,12 @@ optional_policy(`
+@@ -620,6 +992,12 @@ optional_policy(`
yam_read_content(httpd_t)
')
@@ -3538,7 +3559,7 @@ index 0833afb..18e92f6 100644
########################################
#
# Apache helper local policy
-@@ -633,7 +1008,11 @@ allow httpd_helper_t httpd_log_t:file append_file_perms;
+@@ -633,7 +1011,11 @@ allow httpd_helper_t httpd_log_t:file append_file_perms;
logging_send_syslog_msg(httpd_helper_t)
@@ -3551,7 +3572,7 @@ index 0833afb..18e92f6 100644
########################################
#
-@@ -671,28 +1050,30 @@ libs_exec_lib_files(httpd_php_t)
+@@ -671,28 +1053,30 @@ libs_exec_lib_files(httpd_php_t)
userdom_use_unpriv_users_fds(httpd_php_t)
tunable_policy(`httpd_can_network_connect_db',`
@@ -3595,7 +3616,7 @@ index 0833afb..18e92f6 100644
')
########################################
-@@ -702,6 +1083,7 @@ optional_policy(`
+@@ -702,6 +1086,7 @@ optional_policy(`
allow httpd_suexec_t self:capability { setuid setgid };
allow httpd_suexec_t self:process signal_perms;
@@ -3603,7 +3624,7 @@ index 0833afb..18e92f6 100644
allow httpd_suexec_t self:unix_stream_socket create_stream_socket_perms;
domtrans_pattern(httpd_t, httpd_suexec_exec_t, httpd_suexec_t)
-@@ -716,19 +1098,27 @@ manage_dirs_pattern(httpd_suexec_t, httpd_suexec_tmp_t, httpd_suexec_tmp_t)
+@@ -716,19 +1101,27 @@ manage_dirs_pattern(httpd_suexec_t, httpd_suexec_tmp_t, httpd_suexec_tmp_t)
manage_files_pattern(httpd_suexec_t, httpd_suexec_tmp_t, httpd_suexec_tmp_t)
files_tmp_filetrans(httpd_suexec_t, httpd_suexec_tmp_t, { file dir })
@@ -3632,7 +3653,7 @@ index 0833afb..18e92f6 100644
files_read_usr_files(httpd_suexec_t)
files_dontaudit_search_pids(httpd_suexec_t)
files_search_home(httpd_suexec_t)
-@@ -745,7 +1135,6 @@ tunable_policy(`httpd_can_network_connect',`
+@@ -745,7 +1138,6 @@ tunable_policy(`httpd_can_network_connect',`
allow httpd_suexec_t self:tcp_socket create_stream_socket_perms;
allow httpd_suexec_t self:udp_socket create_socket_perms;
@@ -3640,7 +3661,7 @@ index 0833afb..18e92f6 100644
corenet_all_recvfrom_netlabel(httpd_suexec_t)
corenet_tcp_sendrecv_generic_if(httpd_suexec_t)
corenet_udp_sendrecv_generic_if(httpd_suexec_t)
-@@ -757,13 +1146,31 @@ tunable_policy(`httpd_can_network_connect',`
+@@ -757,13 +1149,31 @@ tunable_policy(`httpd_can_network_connect',`
corenet_sendrecv_all_client_packets(httpd_suexec_t)
')
@@ -3673,7 +3694,7 @@ index 0833afb..18e92f6 100644
fs_read_nfs_files(httpd_suexec_t)
fs_read_nfs_symlinks(httpd_suexec_t)
fs_exec_nfs_files(httpd_suexec_t)
-@@ -786,6 +1193,25 @@ optional_policy(`
+@@ -786,6 +1196,25 @@ optional_policy(`
dontaudit httpd_suexec_t httpd_t:unix_stream_socket { read write };
')
@@ -3699,7 +3720,7 @@ index 0833afb..18e92f6 100644
########################################
#
# Apache system script local policy
-@@ -806,12 +1232,17 @@ read_lnk_files_pattern(httpd_sys_script_t, squirrelmail_spool_t, squirrelmail_sp
+@@ -806,12 +1235,17 @@ read_lnk_files_pattern(httpd_sys_script_t, squirrelmail_spool_t, squirrelmail_sp
kernel_read_kernel_sysctls(httpd_sys_script_t)
@@ -3717,7 +3738,7 @@ index 0833afb..18e92f6 100644
ifdef(`distro_redhat',`
allow httpd_sys_script_t httpd_log_t:file append_file_perms;
')
-@@ -820,18 +1251,49 @@ tunable_policy(`httpd_can_sendmail',`
+@@ -820,18 +1254,49 @@ tunable_policy(`httpd_can_sendmail',`
mta_send_mail(httpd_sys_script_t)
')
@@ -3774,7 +3795,7 @@ index 0833afb..18e92f6 100644
corenet_tcp_sendrecv_all_ports(httpd_sys_script_t)
corenet_udp_sendrecv_all_ports(httpd_sys_script_t)
corenet_tcp_connect_all_ports(httpd_sys_script_t)
-@@ -839,14 +1301,39 @@ tunable_policy(`httpd_enable_cgi && httpd_can_network_connect',`
+@@ -839,14 +1304,39 @@ tunable_policy(`httpd_enable_cgi && httpd_can_network_connect',`
')
tunable_policy(`httpd_enable_homedirs',`
@@ -3815,7 +3836,7 @@ index 0833afb..18e92f6 100644
tunable_policy(`httpd_enable_homedirs && use_samba_home_dirs',`
fs_read_cifs_files(httpd_sys_script_t)
fs_read_cifs_symlinks(httpd_sys_script_t)
-@@ -859,10 +1346,20 @@ optional_policy(`
+@@ -859,10 +1349,20 @@ optional_policy(`
optional_policy(`
mysql_stream_connect(httpd_sys_script_t)
mysql_rw_db_sockets(httpd_sys_script_t)
@@ -3836,7 +3857,7 @@ index 0833afb..18e92f6 100644
')
########################################
-@@ -878,7 +1375,6 @@ kernel_read_kernel_sysctls(httpd_rotatelogs_t)
+@@ -878,7 +1378,6 @@ kernel_read_kernel_sysctls(httpd_rotatelogs_t)
kernel_dontaudit_list_proc(httpd_rotatelogs_t)
kernel_dontaudit_read_proc_symlinks(httpd_rotatelogs_t)
@@ -3844,7 +3865,7 @@ index 0833afb..18e92f6 100644
logging_search_logs(httpd_rotatelogs_t)
-@@ -908,11 +1404,144 @@ optional_policy(`
+@@ -908,11 +1407,143 @@ optional_policy(`
tunable_policy(`httpd_enable_cgi && httpd_unified',`
allow httpd_user_script_t httpdcontent:file entrypoint;
@@ -3862,7 +3883,7 @@ index 0833afb..18e92f6 100644
+ userdom_search_user_home_content(httpd_t)
+ userdom_search_user_home_content(httpd_suexec_t)
+ userdom_search_user_home_content(httpd_user_script_t)
- ')
++')
+
+tunable_policy(`httpd_read_user_content',`
+ userdom_read_user_home_content_files(httpd_t)
@@ -3990,8 +4011,7 @@ index 0833afb..18e92f6 100644
+ corenet_tcp_connect_keystone_port(httpd_sys_script_t)
+ corenet_tcp_connect_all_ephemeral_ports(httpd_t)
+ corenet_tcp_connect_glance_port(httpd_sys_script_t)
-+')
-+
+ ')
diff --git a/apcupsd.fc b/apcupsd.fc
index cd07b96..f3506be 100644
--- a/apcupsd.fc
@@ -11920,90 +11940,98 @@ index 3559a05..224142a 100644
/var/spool/cron/atjobs -d gen_context(system_u:object_r:cron_spool_t,s0)
/var/spool/cron/atjobs/[^/]* -- <>
diff --git a/cron.if b/cron.if
-index 6e12dc7..59480a6 100644
+index 6e12dc7..1382775 100644
--- a/cron.if
+++ b/cron.if
-@@ -12,6 +12,11 @@
+@@ -12,12 +12,17 @@
##
#
template(`cron_common_crontab_template',`
+ gen_require(`
-+ type crond_t, crond_var_run_t, crontab_exec_t;
-+ type cron_spool_t, user_cron_spool_t;
++ attribute crontab_domain;
++ type crontab_exec_t;
+ ')
+
##############################
#
# Declarations
-@@ -30,11 +35,15 @@ template(`cron_common_crontab_template',`
+ #
- # dac_override is to create the file in the directory under /tmp
- allow $1_t self:capability { fowner setuid setgid chown dac_override };
-- allow $1_t self:process { setsched signal_perms };
-+ allow $1_t self:process { getcap setsched signal_perms };
- allow $1_t self:fifo_file rw_fifo_file_perms;
+- type $1_t;
++ type $1_t, crontab_domain;
+ userdom_user_application_domain($1_t, crontab_exec_t)
+ type $1_tmp_t;
+@@ -28,63 +33,15 @@ template(`cron_common_crontab_template',`
+ # Local policy
+ #
+
+- # dac_override is to create the file in the directory under /tmp
+- allow $1_t self:capability { fowner setuid setgid chown dac_override };
+- allow $1_t self:process { setsched signal_perms };
+- allow $1_t self:fifo_file rw_fifo_file_perms;
+-
- allow $1_t $1_tmp_t:file manage_file_perms;
- files_tmp_filetrans($1_t, $1_tmp_t, file)
-+ allow $1_t crond_t:process signal;
-+ allow $1_t crond_var_run_t:file read_file_perms;
-+
+-
+- # create files in /var/spool/cron
+- manage_files_pattern($1_t, { cron_spool_t user_cron_spool_t }, user_cron_spool_t)
+- filetrans_pattern($1_t, cron_spool_t, user_cron_spool_t, file)
+- files_list_spool($1_t)
+-
+- # crontab signals crond by updating the mtime on the spooldir
+- allow $1_t cron_spool_t:dir setattr;
+-
+- kernel_read_system_state($1_t)
+-
+- # for the checks used by crontab -u
+- selinux_dontaudit_search_fs($1_t)
+-
+- fs_getattr_xattr_fs($1_t)
+-
+- domain_use_interactive_fds($1_t)
+-
+- files_read_etc_files($1_t)
+- files_read_usr_files($1_t)
+- files_dontaudit_search_pids($1_t)
+ manage_dirs_pattern($1_t, $1_tmp_t, $1_tmp_t)
+ manage_files_pattern($1_t, $1_tmp_t, $1_tmp_t)
+ files_tmp_filetrans($1_t, $1_tmp_t, { dir file })
- # create files in /var/spool/cron
- manage_files_pattern($1_t, { cron_spool_t user_cron_spool_t }, user_cron_spool_t)
-@@ -42,7 +51,7 @@ template(`cron_common_crontab_template',`
- files_list_spool($1_t)
-
- # crontab signals crond by updating the mtime on the spooldir
-- allow $1_t cron_spool_t:dir setattr;
-+ allow $1_t cron_spool_t:dir setattr_dir_perms;
-
- kernel_read_system_state($1_t)
-
-@@ -50,6 +59,8 @@ template(`cron_common_crontab_template',`
- selinux_dontaudit_search_fs($1_t)
-
- fs_getattr_xattr_fs($1_t)
-+ fs_manage_cgroup_dirs($1_t)
-+ fs_manage_cgroup_files($1_t)
-
- domain_use_interactive_fds($1_t)
-
-@@ -58,12 +69,16 @@ template(`cron_common_crontab_template',`
- files_dontaudit_search_pids($1_t)
-
auth_domtrans_chk_passwd($1_t)
-+ auth_rw_var_auth($1_t)
+ auth_use_nsswitch($1_t)
- logging_send_syslog_msg($1_t)
- logging_send_audit_msgs($1_t)
-+ logging_set_loginuid($1_t)
-
- init_dontaudit_write_utmp($1_t)
- init_read_utmp($1_t)
-+ init_read_state($1_t)
-
- miscfiles_read_localization($1_t)
+- logging_send_syslog_msg($1_t)
+- logging_send_audit_msgs($1_t)
+-
+- init_dontaudit_write_utmp($1_t)
+- init_read_utmp($1_t)
++ userdom_home_reader($1_t)
-@@ -72,9 +87,12 @@ template(`cron_common_crontab_template',`
- userdom_manage_user_tmp_dirs($1_t)
- userdom_manage_user_tmp_files($1_t)
- # Access terminals.
+- miscfiles_read_localization($1_t)
+-
+- seutil_read_config($1_t)
+-
+- userdom_manage_user_tmp_dirs($1_t)
+- userdom_manage_user_tmp_files($1_t)
+- # Access terminals.
- userdom_use_user_terminals($1_t)
-+ userdom_use_inherited_user_terminals($1_t)
- # Read user crontabs
- userdom_read_user_home_content_files($1_t)
-+ userdom_read_user_home_content_symlinks($1_t)
-+
-+ userdom_home_reader($1_t)
+- # Read user crontabs
+- userdom_read_user_home_content_files($1_t)
+-
+- tunable_policy(`fcron_crond',`
+- # fcron wants an instant update of a crontab change for the administrator
+- # also crontab does a security check for crontab -u
+- dontaudit $1_t crond_t:process signal;
+- ')
+-
+- optional_policy(`
+- nscd_socket_use($1_t)
+- ')
+ ')
- tunable_policy(`fcron_crond',`
- # fcron wants an instant update of a crontab change for the administrator
-@@ -101,10 +119,12 @@ template(`cron_common_crontab_template',`
+ ########################################
+@@ -101,10 +58,12 @@ template(`cron_common_crontab_template',`
## User domain for the role
##
##
@@ -12016,7 +12044,7 @@ index 6e12dc7..59480a6 100644
')
role $1 types { cronjob_t crontab_t };
-@@ -115,9 +135,20 @@ interface(`cron_role',`
+@@ -115,9 +74,20 @@ interface(`cron_role',`
# Transition from the user domain to the derived domain.
domtrans_pattern($2, crontab_exec_t, crontab_t)
@@ -12038,7 +12066,7 @@ index 6e12dc7..59480a6 100644
# Run helper programs as the user domain
#corecmd_bin_domtrans(crontab_t, $2)
-@@ -150,29 +181,21 @@ interface(`cron_role',`
+@@ -150,29 +120,21 @@ interface(`cron_role',`
## User domain for the role
##
##
@@ -12075,7 +12103,7 @@ index 6e12dc7..59480a6 100644
optional_policy(`
gen_require(`
-@@ -180,9 +203,8 @@ interface(`cron_unconfined_role',`
+@@ -180,9 +142,8 @@ interface(`cron_unconfined_role',`
')
dbus_stub(unconfined_cronjob_t)
@@ -12086,7 +12114,7 @@ index 6e12dc7..59480a6 100644
')
########################################
-@@ -199,6 +221,7 @@ interface(`cron_unconfined_role',`
+@@ -199,6 +160,7 @@ interface(`cron_unconfined_role',`
## User domain for the role
##
##
@@ -12094,7 +12122,7 @@ index 6e12dc7..59480a6 100644
#
interface(`cron_admin_role',`
gen_require(`
-@@ -219,7 +242,10 @@ interface(`cron_admin_role',`
+@@ -219,7 +181,10 @@ interface(`cron_admin_role',`
# crontab shows up in user ps
ps_process_pattern($2, admin_crontab_t)
@@ -12106,7 +12134,7 @@ index 6e12dc7..59480a6 100644
# Run helper programs as the user domain
#corecmd_bin_domtrans(admin_crontab_t, $2)
-@@ -263,6 +289,9 @@ interface(`cron_system_entry',`
+@@ -263,6 +228,9 @@ interface(`cron_system_entry',`
domtrans_pattern(crond_t, $2, $1)
role system_r types $1;
@@ -12116,7 +12144,7 @@ index 6e12dc7..59480a6 100644
')
########################################
-@@ -303,7 +332,7 @@ interface(`cron_exec',`
+@@ -303,7 +271,7 @@ interface(`cron_exec',`
########################################
##
@@ -12125,7 +12153,7 @@ index 6e12dc7..59480a6 100644
##
##
##
-@@ -321,6 +350,29 @@ interface(`cron_initrc_domtrans',`
+@@ -321,6 +289,29 @@ interface(`cron_initrc_domtrans',`
########################################
##
@@ -12155,7 +12183,7 @@ index 6e12dc7..59480a6 100644
## Inherit and use a file descriptor
## from the cron daemon.
##
-@@ -358,6 +410,24 @@ interface(`cron_sigchld',`
+@@ -358,6 +349,24 @@ interface(`cron_sigchld',`
########################################
##
@@ -12180,7 +12208,7 @@ index 6e12dc7..59480a6 100644
## Read a cron daemon unnamed pipe.
##
##
-@@ -376,6 +446,47 @@ interface(`cron_read_pipes',`
+@@ -376,6 +385,47 @@ interface(`cron_read_pipes',`
########################################
##
@@ -12228,7 +12256,7 @@ index 6e12dc7..59480a6 100644
## Do not audit attempts to write cron daemon unnamed pipes.
##
##
-@@ -407,7 +518,43 @@ interface(`cron_rw_pipes',`
+@@ -407,7 +457,43 @@ interface(`cron_rw_pipes',`
type crond_t;
')
@@ -12273,7 +12301,7 @@ index 6e12dc7..59480a6 100644
')
########################################
-@@ -467,6 +614,25 @@ interface(`cron_search_spool',`
+@@ -467,6 +553,25 @@ interface(`cron_search_spool',`
########################################
##
@@ -12299,7 +12327,7 @@ index 6e12dc7..59480a6 100644
## Manage pid files used by cron
##
##
-@@ -480,6 +646,7 @@ interface(`cron_manage_pid_files',`
+@@ -480,6 +585,7 @@ interface(`cron_manage_pid_files',`
type crond_var_run_t;
')
@@ -12307,7 +12335,7 @@ index 6e12dc7..59480a6 100644
manage_files_pattern($1, crond_var_run_t, crond_var_run_t)
')
-@@ -535,7 +702,7 @@ interface(`cron_write_system_job_pipes',`
+@@ -535,7 +641,7 @@ interface(`cron_write_system_job_pipes',`
type system_cronjob_t;
')
@@ -12316,7 +12344,7 @@ index 6e12dc7..59480a6 100644
')
########################################
-@@ -553,7 +720,7 @@ interface(`cron_rw_system_job_pipes',`
+@@ -553,7 +659,7 @@ interface(`cron_rw_system_job_pipes',`
type system_cronjob_t;
')
@@ -12325,7 +12353,7 @@ index 6e12dc7..59480a6 100644
')
########################################
-@@ -586,11 +753,14 @@ interface(`cron_rw_system_job_stream_sockets',`
+@@ -586,11 +692,14 @@ interface(`cron_rw_system_job_stream_sockets',`
#
interface(`cron_read_system_job_tmp_files',`
gen_require(`
@@ -12341,7 +12369,7 @@ index 6e12dc7..59480a6 100644
')
########################################
-@@ -626,7 +796,47 @@ interface(`cron_dontaudit_append_system_job_tmp_files',`
+@@ -626,7 +735,47 @@ interface(`cron_dontaudit_append_system_job_tmp_files',`
interface(`cron_dontaudit_write_system_job_tmp_files',`
gen_require(`
type system_cronjob_tmp_t;
@@ -12390,7 +12418,7 @@ index 6e12dc7..59480a6 100644
+ manage_files_pattern($1, system_cronjob_var_lib_t, system_cronjob_var_lib_t)
')
diff --git a/cron.te b/cron.te
-index b357856..2af4e88 100644
+index b357856..2b0b0d7 100644
--- a/cron.te
+++ b/cron.te
@@ -1,4 +1,4 @@
@@ -12399,7 +12427,7 @@ index b357856..2af4e88 100644
gen_require(`
class passwd rootok;
-@@ -10,18 +10,18 @@ gen_require(`
+@@ -10,35 +10,36 @@ gen_require(`
#
##
@@ -12426,7 +12454,10 @@ index b357856..2af4e88 100644
##
gen_tunable(fcron_crond, false)
-@@ -31,14 +31,14 @@ type anacron_exec_t;
++attribute crontab_domain;
+ attribute cron_spool_type;
+
+ type anacron_exec_t;
application_executable_file(anacron_exec_t)
type cron_spool_t;
@@ -12443,7 +12474,7 @@ index b357856..2af4e88 100644
# var/log files
type cron_log_t;
-@@ -61,11 +61,17 @@ domain_cron_exemption_source(crond_t)
+@@ -61,11 +62,17 @@ domain_cron_exemption_source(crond_t)
type crond_initrc_exec_t;
init_script_file(crond_initrc_exec_t)
@@ -12461,7 +12492,7 @@ index b357856..2af4e88 100644
type crontab_exec_t;
application_executable_file(crontab_exec_t)
-@@ -79,14 +85,16 @@ typealias crontab_t alias { user_crontab_t staff_crontab_t };
+@@ -79,14 +86,16 @@ typealias crontab_t alias { user_crontab_t staff_crontab_t };
typealias crontab_t alias { auditadm_crontab_t secadm_crontab_t };
typealias crontab_tmp_t alias { user_crontab_tmp_t staff_crontab_tmp_t };
typealias crontab_tmp_t alias { auditadm_crontab_tmp_t secadm_crontab_tmp_t };
@@ -12479,7 +12510,7 @@ index b357856..2af4e88 100644
type system_cronjob_lock_t alias system_crond_lock_t;
files_lock_file(system_cronjob_lock_t)
-@@ -94,10 +102,6 @@ files_lock_file(system_cronjob_lock_t)
+@@ -94,10 +103,6 @@ files_lock_file(system_cronjob_lock_t)
type system_cronjob_tmp_t alias system_crond_tmp_t;
files_tmp_file(system_cronjob_tmp_t)
@@ -12490,7 +12521,7 @@ index b357856..2af4e88 100644
type unconfined_cronjob_t;
domain_type(unconfined_cronjob_t)
domain_cron_exemption_target(unconfined_cronjob_t)
-@@ -106,8 +110,20 @@ domain_cron_exemption_target(unconfined_cronjob_t)
+@@ -106,8 +111,20 @@ domain_cron_exemption_target(unconfined_cronjob_t)
type user_cron_spool_t, cron_spool_type;
typealias user_cron_spool_t alias { staff_cron_spool_t sysadm_cron_spool_t unconfined_cron_spool_t };
typealias user_cron_spool_t alias { auditadm_cron_spool_t secadm_cron_spool_t };
@@ -12512,7 +12543,7 @@ index b357856..2af4e88 100644
########################################
#
-@@ -115,7 +131,7 @@ ubac_constrained(user_cron_spool_t)
+@@ -115,7 +132,7 @@ ubac_constrained(user_cron_spool_t)
#
# Allow our crontab domain to unlink a user cron spool file.
@@ -12521,7 +12552,7 @@ index b357856..2af4e88 100644
# Manipulate other users crontab.
selinux_get_fs_mount(admin_crontab_t)
-@@ -125,7 +141,7 @@ selinux_compute_create_context(admin_crontab_t)
+@@ -125,7 +142,7 @@ selinux_compute_create_context(admin_crontab_t)
selinux_compute_relabel_context(admin_crontab_t)
selinux_compute_user_contexts(admin_crontab_t)
@@ -12530,7 +12561,7 @@ index b357856..2af4e88 100644
# fcron wants an instant update of a crontab change for the administrator
# also crontab does a security check for crontab -u
allow admin_crontab_t self:process setfscreate;
-@@ -136,9 +152,9 @@ tunable_policy(`fcron_crond', `
+@@ -136,9 +153,9 @@ tunable_policy(`fcron_crond', `
# Cron daemon local policy
#
@@ -12542,7 +12573,7 @@ index b357856..2af4e88 100644
allow crond_t self:process { setexec setfscreate };
allow crond_t self:fd use;
allow crond_t self:fifo_file rw_fifo_file_perms;
-@@ -151,6 +167,7 @@ allow crond_t self:sem create_sem_perms;
+@@ -151,6 +168,7 @@ allow crond_t self:sem create_sem_perms;
allow crond_t self:msgq create_msgq_perms;
allow crond_t self:msg { send receive };
allow crond_t self:key { search write link };
@@ -12550,7 +12581,7 @@ index b357856..2af4e88 100644
manage_files_pattern(crond_t, cron_log_t, cron_log_t)
logging_log_filetrans(crond_t, cron_log_t, file)
-@@ -187,27 +204,47 @@ fs_list_inotifyfs(crond_t)
+@@ -187,27 +205,47 @@ fs_list_inotifyfs(crond_t)
# need auth_chkpwd to check for locked accounts.
auth_domtrans_chk_passwd(crond_t)
@@ -12599,7 +12630,7 @@ index b357856..2af4e88 100644
logging_send_syslog_msg(crond_t)
logging_set_loginuid(crond_t)
-@@ -220,20 +257,23 @@ miscfiles_read_localization(crond_t)
+@@ -220,20 +258,23 @@ miscfiles_read_localization(crond_t)
userdom_use_unpriv_users_fds(crond_t)
# Not sure why this is needed
userdom_list_user_home_dirs(crond_t)
@@ -12628,7 +12659,7 @@ index b357856..2af4e88 100644
# Run the rpm program in the rpm_t domain. Allow creation of RPM log files
# via redirection of standard out.
optional_policy(`
-@@ -241,7 +281,7 @@ ifdef(`distro_redhat', `
+@@ -241,7 +282,7 @@ ifdef(`distro_redhat', `
')
')
@@ -12637,7 +12668,7 @@ index b357856..2af4e88 100644
files_polyinstantiate_all(crond_t)
')
-@@ -250,11 +290,27 @@ tunable_policy(`fcron_crond', `
+@@ -250,11 +291,27 @@ tunable_policy(`fcron_crond', `
')
optional_policy(`
@@ -12665,7 +12696,7 @@ index b357856..2af4e88 100644
amanda_search_var_lib(crond_t)
')
-@@ -264,6 +320,8 @@ optional_policy(`
+@@ -264,6 +321,8 @@ optional_policy(`
optional_policy(`
hal_dbus_chat(crond_t)
@@ -12674,7 +12705,7 @@ index b357856..2af4e88 100644
')
optional_policy(`
-@@ -286,15 +344,25 @@ optional_policy(`
+@@ -286,15 +345,25 @@ optional_policy(`
')
optional_policy(`
@@ -12700,7 +12731,7 @@ index b357856..2af4e88 100644
allow system_cronjob_t self:process { signal_perms getsched setsched };
allow system_cronjob_t self:fifo_file rw_fifo_file_perms;
allow system_cronjob_t self:passwd rootok;
-@@ -306,10 +374,19 @@ logging_log_filetrans(system_cronjob_t, cron_log_t, file)
+@@ -306,10 +375,19 @@ logging_log_filetrans(system_cronjob_t, cron_log_t, file)
# This is to handle /var/lib/misc directory. Used currently
# by prelink var/lib files for cron
@@ -12721,7 +12752,7 @@ index b357856..2af4e88 100644
# The entrypoint interface is not used as this is not
# a regular entrypoint. Since crontab files are
# not directly executed, crond must ensure that
-@@ -329,6 +406,7 @@ allow crond_t system_cronjob_t:fd use;
+@@ -329,6 +407,7 @@ allow crond_t system_cronjob_t:fd use;
allow system_cronjob_t crond_t:fd use;
allow system_cronjob_t crond_t:fifo_file rw_file_perms;
allow system_cronjob_t crond_t:process sigchld;
@@ -12729,7 +12760,7 @@ index b357856..2af4e88 100644
# Write /var/lock/makewhatis.lock.
allow system_cronjob_t system_cronjob_lock_t:file manage_file_perms;
-@@ -340,11 +418,16 @@ manage_lnk_files_pattern(system_cronjob_t, crond_tmp_t, system_cronjob_tmp_t)
+@@ -340,11 +419,16 @@ manage_lnk_files_pattern(system_cronjob_t, crond_tmp_t, system_cronjob_tmp_t)
filetrans_pattern(system_cronjob_t, crond_tmp_t, system_cronjob_tmp_t, { file lnk_file })
files_tmp_filetrans(system_cronjob_t, system_cronjob_tmp_t, file)
@@ -12747,7 +12778,7 @@ index b357856..2af4e88 100644
kernel_read_system_state(system_cronjob_t)
kernel_read_software_raid_state(system_cronjob_t)
-@@ -353,7 +436,6 @@ files_dontaudit_search_boot(system_cronjob_t)
+@@ -353,7 +437,6 @@ files_dontaudit_search_boot(system_cronjob_t)
corecmd_exec_all_executables(system_cronjob_t)
@@ -12755,7 +12786,7 @@ index b357856..2af4e88 100644
corenet_all_recvfrom_netlabel(system_cronjob_t)
corenet_tcp_sendrecv_generic_if(system_cronjob_t)
corenet_udp_sendrecv_generic_if(system_cronjob_t)
-@@ -365,6 +447,7 @@ corenet_udp_sendrecv_all_ports(system_cronjob_t)
+@@ -365,6 +448,7 @@ corenet_udp_sendrecv_all_ports(system_cronjob_t)
dev_getattr_all_blk_files(system_cronjob_t)
dev_getattr_all_chr_files(system_cronjob_t)
dev_read_urand(system_cronjob_t)
@@ -12763,7 +12794,7 @@ index b357856..2af4e88 100644
fs_getattr_all_fs(system_cronjob_t)
fs_getattr_all_files(system_cronjob_t)
-@@ -376,7 +459,6 @@ fs_getattr_all_sockets(system_cronjob_t)
+@@ -376,7 +460,6 @@ fs_getattr_all_sockets(system_cronjob_t)
domain_dontaudit_read_all_domains_state(system_cronjob_t)
files_exec_etc_files(system_cronjob_t)
@@ -12771,7 +12802,7 @@ index b357856..2af4e88 100644
files_read_etc_runtime_files(system_cronjob_t)
files_list_all(system_cronjob_t)
files_getattr_all_dirs(system_cronjob_t)
-@@ -391,6 +473,7 @@ files_dontaudit_search_pids(system_cronjob_t)
+@@ -391,6 +474,7 @@ files_dontaudit_search_pids(system_cronjob_t)
# Access other spool directories like
# /var/spool/anacron and /var/spool/slrnpull.
files_manage_generic_spool(system_cronjob_t)
@@ -12779,7 +12810,7 @@ index b357856..2af4e88 100644
init_use_script_fds(system_cronjob_t)
init_read_utmp(system_cronjob_t)
-@@ -413,8 +496,10 @@ miscfiles_manage_man_pages(system_cronjob_t)
+@@ -413,8 +497,10 @@ miscfiles_manage_man_pages(system_cronjob_t)
seutil_read_config(system_cronjob_t)
@@ -12791,7 +12822,7 @@ index b357856..2af4e88 100644
# via redirection of standard out.
optional_policy(`
rpm_manage_log(system_cronjob_t)
-@@ -439,6 +524,8 @@ optional_policy(`
+@@ -439,6 +525,8 @@ optional_policy(`
apache_read_config(system_cronjob_t)
apache_read_log(system_cronjob_t)
apache_read_sys_content(system_cronjob_t)
@@ -12800,7 +12831,7 @@ index b357856..2af4e88 100644
')
optional_policy(`
-@@ -446,6 +533,14 @@ optional_policy(`
+@@ -446,6 +534,14 @@ optional_policy(`
')
optional_policy(`
@@ -12815,7 +12846,7 @@ index b357856..2af4e88 100644
ftp_read_log(system_cronjob_t)
')
-@@ -456,6 +551,10 @@ optional_policy(`
+@@ -456,6 +552,10 @@ optional_policy(`
')
optional_policy(`
@@ -12826,7 +12857,7 @@ index b357856..2af4e88 100644
lpd_list_spool(system_cronjob_t)
')
-@@ -464,7 +563,9 @@ optional_policy(`
+@@ -464,7 +564,9 @@ optional_policy(`
')
optional_policy(`
@@ -12836,7 +12867,7 @@ index b357856..2af4e88 100644
')
optional_policy(`
-@@ -472,6 +573,10 @@ optional_policy(`
+@@ -472,6 +574,10 @@ optional_policy(`
')
optional_policy(`
@@ -12847,7 +12878,7 @@ index b357856..2af4e88 100644
postfix_read_config(system_cronjob_t)
')
-@@ -480,7 +585,7 @@ optional_policy(`
+@@ -480,7 +586,7 @@ optional_policy(`
prelink_manage_lib(system_cronjob_t)
prelink_manage_log(system_cronjob_t)
prelink_read_cache(system_cronjob_t)
@@ -12856,7 +12887,7 @@ index b357856..2af4e88 100644
')
optional_policy(`
-@@ -495,6 +600,7 @@ optional_policy(`
+@@ -495,6 +601,7 @@ optional_policy(`
optional_policy(`
spamassassin_manage_lib_files(system_cronjob_t)
@@ -12864,7 +12895,7 @@ index b357856..2af4e88 100644
')
optional_policy(`
-@@ -502,7 +608,18 @@ optional_policy(`
+@@ -502,7 +609,18 @@ optional_policy(`
')
optional_policy(`
@@ -12883,7 +12914,7 @@ index b357856..2af4e88 100644
userdom_user_home_dir_filetrans_user_home_content(system_cronjob_t, { dir file lnk_file fifo_file sock_file })
')
-@@ -542,7 +659,6 @@ kernel_read_kernel_sysctls(cronjob_t)
+@@ -542,7 +660,6 @@ kernel_read_kernel_sysctls(cronjob_t)
# ps does not need to access /boot when run from cron
files_dontaudit_search_boot(cronjob_t)
@@ -12891,7 +12922,7 @@ index b357856..2af4e88 100644
corenet_all_recvfrom_netlabel(cronjob_t)
corenet_tcp_sendrecv_generic_if(cronjob_t)
corenet_udp_sendrecv_generic_if(cronjob_t)
-@@ -595,9 +711,12 @@ userdom_manage_user_home_content_sockets(cronjob_t)
+@@ -595,9 +712,12 @@ userdom_manage_user_home_content_sockets(cronjob_t)
#userdom_user_home_dir_filetrans_user_home_content(cronjob_t, notdevfile_class_set)
list_dirs_pattern(crond_t, user_cron_spool_t, user_cron_spool_t)
@@ -12905,6 +12936,85 @@ index b357856..2af4e88 100644
allow crond_t user_cron_spool_t:file manage_file_perms;
')
+@@ -626,3 +746,78 @@ optional_policy(`
+
+ unconfined_domain(unconfined_cronjob_t)
+ ')
++
++##############################
++#
++# crontab common policy
++#
++
++# dac_override is to create the file in the directory under /tmp
++allow crontab_domain self:capability { fowner setuid setgid chown dac_override };
++allow crontab_domain self:process { getcap setsched signal_perms };
++allow crontab_domain self:fifo_file rw_fifo_file_perms;
++
++allow crontab_domain crond_t:process signal;
++allow crontab_domain crond_var_run_t:file read_file_perms;
++
++# create files in /var/spool/cron
++manage_files_pattern(crontab_domain, { cron_spool_t user_cron_spool_t }, user_cron_spool_t)
++filetrans_pattern(crontab_domain, cron_spool_t, user_cron_spool_t, file)
++files_list_spool(crontab_domain)
++
++# crontab signals crond by updating the mtime on the spooldir
++allow crontab_domain cron_spool_t:dir setattr_dir_perms;
++
++kernel_read_system_state(crontab_domain)
++
++# for the checks used by crontab -u
++selinux_dontaudit_search_fs(crontab_domain)
++
++fs_getattr_xattr_fs(crontab_domain)
++fs_manage_cgroup_dirs(crontab_domain)
++fs_manage_cgroup_files(crontab_domain)
++
++domain_use_interactive_fds(crontab_domain)
++
++files_read_etc_files(crontab_domain)
++files_read_usr_files(crontab_domain)
++files_dontaudit_search_pids(crontab_domain)
++
++fs_dontaudit_rw_anon_inodefs_files(crontab_domain)
++
++auth_rw_var_auth(crontab_domain)
++
++logging_send_syslog_msg(crontab_domain)
++logging_send_audit_msgs(crontab_domain)
++logging_set_loginuid(crontab_domain)
++
++init_dontaudit_write_utmp(crontab_domain)
++init_read_utmp(crontab_domain)
++init_read_state(crontab_domain)
++
++miscfiles_read_localization(crontab_domain)
++
++seutil_read_config(crontab_domain)
++
++userdom_manage_user_tmp_dirs(crontab_domain)
++userdom_manage_user_tmp_files(crontab_domain)
++# Access terminals.
++userdom_use_inherited_user_terminals(crontab_domain)
++# Read user crontabs
++userdom_read_user_home_content_files(crontab_domain)
++userdom_read_user_home_content_symlinks(crontab_domain)
++
++tunable_policy(`fcron_crond',`
++ # fcron wants an instant update of a crontab change for the administrator
++ # also crontab does a security check for crontab -u
++ dontaudit crontab_domain crond_t:process signal;
++')
++
++optional_policy(`
++ ssh_dontaudit_use_ptys(crontab_domain)
++')
++
++optional_policy(`
++ openshift_dontaudit_rw_inherited_fifo_files(crontab_domain)
++ openshift_transition(system_cronjob_t)
++')
diff --git a/ctdbd.fc b/ctdbd.fc
new file mode 100644
index 0000000..2db6b61
@@ -39095,6 +39205,1046 @@ index 0000000..faa9b16
+logging_send_syslog_msg(openhpid_t)
+
+miscfiles_read_localization(openhpid_t)
+diff --git a/openshift-origin.fc b/openshift-origin.fc
+new file mode 100644
+index 0000000..30ca148
+--- /dev/null
++++ b/openshift-origin.fc
+@@ -0,0 +1 @@
++# Left Blank
+diff --git a/openshift-origin.if b/openshift-origin.if
+new file mode 100644
+index 0000000..3eb6a30
+--- /dev/null
++++ b/openshift-origin.if
+@@ -0,0 +1 @@
++##
+diff --git a/openshift-origin.te b/openshift-origin.te
+new file mode 100644
+index 0000000..722adfb
+--- /dev/null
++++ b/openshift-origin.te
+@@ -0,0 +1,11 @@
++policy_module(openshift-origin,1.0.0)
++gen_require(`
++ attribute openshift_domain;
++')
++
++########################################
++#
++# openshift origin standard local policy
++#
++corenet_tcp_connect_all_ports(openshift_domain)
++corenet_tcp_bind_all_ports(openshift_domain)
+diff --git a/openshift.fc b/openshift.fc
+new file mode 100644
+index 0000000..2144799
+--- /dev/null
++++ b/openshift.fc
+@@ -0,0 +1,26 @@
++/etc/rc\.d/init\.d/libra gen_context(system_u:object_r:openshift_initrc_exec_t,s0)
++/etc/rc\.d/init\.d/mcollective gen_context(system_u:object_r:openshift_initrc_exec_t,s0)
++
++/var/lib/stickshift/.httpd.d(/.*)? gen_context(system_u:object_r:httpd_config_t,s0)
++/var/lib/stickshift/.stickshift-proxy.d(/.*)? gen_context(system_u:object_r:etc_t,s0)
++/var/lib/stickshift/.limits.d(/.*)? gen_context(system_u:object_r:etc_t,s0)
++
++/var/lib/stickshift(/.*)? gen_context(system_u:object_r:openshift_var_lib_t,s0)
++#/usr/libexec/stickshift/cartridges(/.*)? gen_context(system_u:object_r:openshift_var_lib_t,s0)
++#/var/lib/stickshift/.* <>
++/var/lib/stickshift/[^/]+/\.ssh(/.*)? gen_context(system_u:object_r:ssh_home_t,s0)
++/var/lib/stickshift/.*/data(/.*)? gen_context(system_u:object_r:openshift_rw_file_t,s0)
++/var/lib/stickshift/.*/\.tmp(/.*)? gen_context(system_u:object_r:openshift_tmp_t,s0)
++/var/lib/stickshift/.*/\.sandbox(/.*)? gen_context(system_u:object_r:openshift_tmp_t,s0)
++/var/lib/stickshift/a?quota\.(user|group) -- gen_context(system_u:object_r:quota_db_t,s0)
++
++/var/log/mcollective\.log -- gen_context(system_u:object_r:openshift_log_t,s0)
++
++/usr/bin/rhc-cgroup-read -- gen_context(system_u:object_r:openshift_cgroup_read_exec_t,s0)
++
++/usr/bin/rhc-restorer -- gen_context(system_u:object_r:openshift_initrc_exec_t,s0)
++/usr/bin/rhc-restorer-wrapper.sh -- gen_context(unconfined_u:object_r:httpd_openshift_script_exec_t,s0)
++
++/var/run/stickshift(/.*)? gen_context(system_u:object_r:openshift_var_run_t,s0)
++
++/sandbox(/.*)? gen_context(system_u:object_r:tmp_t,s0)
+diff --git a/openshift.if b/openshift.if
+new file mode 100644
+index 0000000..75e8c7f
+--- /dev/null
++++ b/openshift.if
+@@ -0,0 +1,546 @@
++## policy for openshift
++
++########################################
++##
++## Execute openshift server in the openshift domain.
++##
++##
++##
++## The type of the process performing this action.
++##
++##
++#
++interface(`openshift_initrc_domtrans',`
++ gen_require(`
++ type openshift_initrc_t;
++ type openshift_initrc_exec_t;
++ ')
++
++ domtrans_pattern($1, openshift_initrc_exec_t, openshift_initrc_t)
++')
++
++########################################
++##
++## Search openshift cache directories.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_search_cache',`
++ gen_require(`
++ type openshift_cache_t;
++ ')
++
++ allow $1 openshift_cache_t:dir search_dir_perms;
++ files_search_var($1)
++')
++
++########################################
++##
++## Read openshift cache files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_read_cache_files',`
++ gen_require(`
++ type openshift_cache_t;
++ ')
++
++ files_search_var($1)
++ read_files_pattern($1, openshift_cache_t, openshift_cache_t)
++')
++
++########################################
++##
++## Create, read, write, and delete
++## openshift cache files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_manage_cache_files',`
++ gen_require(`
++ type openshift_cache_t;
++ ')
++
++ files_search_var($1)
++ manage_files_pattern($1, openshift_cache_t, openshift_cache_t)
++')
++
++########################################
++##
++## Create, read, write, and delete
++## openshift cache dirs.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_manage_cache_dirs',`
++ gen_require(`
++ type openshift_cache_t;
++ ')
++
++ files_search_var($1)
++ manage_dirs_pattern($1, openshift_cache_t, openshift_cache_t)
++')
++
++
++########################################
++##
++## Allow the specified domain to read openshift's log files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++##
++#
++interface(`openshift_read_log',`
++ gen_require(`
++ type openshift_log_t;
++ ')
++
++ logging_search_logs($1)
++ read_files_pattern($1, openshift_log_t, openshift_log_t)
++')
++
++########################################
++##
++## Allow the specified domain to append
++## openshift log files.
++##
++##
++##
++## Domain allowed to transition.
++##
++##
++#
++interface(`openshift_append_log',`
++ gen_require(`
++ type openshift_log_t;
++ ')
++
++ logging_search_logs($1)
++ append_files_pattern($1, openshift_log_t, openshift_log_t)
++')
++
++########################################
++##
++## Allow domain to manage openshift log files
++##
++##
++##
++## Domain to not audit.
++##
++##
++#
++interface(`openshift_manage_log',`
++ gen_require(`
++ type openshift_log_t;
++ ')
++
++ logging_search_logs($1)
++ manage_dirs_pattern($1, openshift_log_t, openshift_log_t)
++ manage_files_pattern($1, openshift_log_t, openshift_log_t)
++ manage_lnk_files_pattern($1, openshift_log_t, openshift_log_t)
++')
++
++########################################
++##
++## Search openshift lib directories.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_search_lib',`
++ gen_require(`
++ type openshift_var_lib_t;
++ ')
++
++ allow $1 openshift_var_lib_t:dir search_dir_perms;
++ files_search_var_lib($1)
++')
++
++########################################
++##
++## Read openshift lib files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_read_lib_files',`
++ gen_require(`
++ type openshift_var_lib_t;
++ ')
++
++ files_search_var_lib($1)
++ read_files_pattern($1, openshift_var_lib_t, openshift_var_lib_t)
++')
++
++########################################
++##
++## Read openshift lib files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_append_lib_files',`
++ gen_require(`
++ type openshift_var_lib_t;
++ ')
++
++ files_search_var_lib($1)
++ append_files_pattern($1, openshift_var_lib_t, openshift_var_lib_t)
++')
++
++########################################
++##
++## Create, read, write, and delete
++## openshift lib files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_manage_lib_files',`
++ gen_require(`
++ type openshift_var_lib_t;
++ ')
++
++ files_search_var_lib($1)
++ manage_files_pattern($1, openshift_var_lib_t, openshift_var_lib_t)
++')
++
++########################################
++##
++## Manage openshift lib dirs files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_manage_lib_dirs',`
++ gen_require(`
++ type openshift_var_lib_t;
++ ')
++
++ files_search_var_lib($1)
++ manage_dirs_pattern($1, openshift_var_lib_t, openshift_var_lib_t)
++')
++
++
++########################################
++##
++## Read openshift PID files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_read_pid_files',`
++ gen_require(`
++ type openshift_var_run_t;
++ ')
++
++ files_search_pids($1)
++ allow $1 openshift_var_run_t:file read_file_perms;
++')
++
++
++########################################
++##
++## All of the rules required to administrate
++## an openshift environment
++##
++##
++##
++## Domain allowed access.
++##
++##
++##
++##
++## Role allowed access.
++##
++##
++##
++#
++interface(`openshift_admin',`
++ gen_require(`
++ type openshift_t;
++ type openshift_initrc_exec_t;
++ type openshift_cache_t;
++ type openshift_log_t;
++ type openshift_var_lib_t;
++ type openshift_var_run_t;
++ ')
++
++ allow $1 openshift_t:process { ptrace signal_perms };
++ ps_process_pattern($1, openshift_t)
++
++ openshift_initrc_domtrans($1)
++ domain_system_change_exemption($1)
++ role_transition $2 openshift_initrc_exec_t system_r;
++ allow $2 system_r;
++
++ files_search_var($1)
++ admin_pattern($1, openshift_cache_t)
++
++ logging_search_logs($1)
++ admin_pattern($1, openshift_log_t)
++
++ files_search_var_lib($1)
++ admin_pattern($1, openshift_var_lib_t)
++
++ files_search_pids($1)
++ admin_pattern($1, openshift_var_run_t)
++
++')
++
++########################################
++##
++## Make the specified type usable as a openshift domain.
++##
++##
++##
++## The prefix of the domain (e.g., openshift
++## is the prefix for openshift_t).
++##
++##
++#
++template(`openshift_service_domain_template',`
++ gen_require(`
++ attribute openshift_domain;
++ attribute openshift_user_domain;
++ ')
++
++ type $1_t, openshift_domain, openshift_user_domain;
++ #typeattribute $1_t openshift_domain, openshift_user_domain;
++ domain_type($1_t)
++ role system_r types $1_t;
++ mcs_untrusted_proc($1_t)
++ domain_user_exemption_target($1_t)
++ auth_use_nsswitch($1_t)
++ domain_obj_id_change_exemption($1_t)
++ domain_dyntrans_type($1_t)
++
++ type $1_app_t, openshift_domain;
++ #typeattribute $1_app_t, openshift_domain;
++ domain_type($1_app_t)
++ role system_r types $1_app_t;
++ mcs_untrusted_proc($1_app_t)
++ domain_user_exemption_target($1_app_t)
++ domain_obj_id_change_exemption($1_app_t)
++ domain_dyntrans_type($1_app_t)
++')
++
++########################################
++##
++## Make the specified type usable as a openshift domain.
++##
++##
++##
++## Type to be used as a openshift domain type.
++##
++##
++#
++template(`openshift_net_type',`
++ gen_require(`
++ attribute openshift_net_domain;
++ ')
++
++ typeattribute $1 openshift_net_domain;
++')
++
++########################################
++##
++## Read and write inherited openshift files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_rw_inherited_content',`
++ gen_require(`
++ attribute openshift_file_type;
++ ')
++
++ allow $1 openshift_file_type:file rw_inherited_file_perms;
++')
++
++########################################
++##
++## Manage openshift tmp files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_manage_tmp_files',`
++ gen_require(`
++ type openshift_tmp_t;
++ ')
++
++ manage_files_pattern($1, openshift_tmp_t, openshift_tmp_t)
++')
++
++########################################
++##
++## Manage openshift tmp sockets.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_manage_tmp_sockets',`
++ gen_require(`
++ type openshift_tmp_t;
++ ')
++
++ manage_sock_files_pattern($1, openshift_tmp_t, openshift_tmp_t)
++')
++
++########################################
++##
++## Mounton openshift tmp directory.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_mounton_tmp',`
++ gen_require(`
++ type openshift_tmp_t;
++ ')
++
++ allow $1 openshift_tmp_t:dir mounton;
++')
++
++########################################
++##
++## Dontaudit Read and write inherited script fifo files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`openshift_dontaudit_rw_inherited_fifo_files',`
++ gen_require(`
++ type openshift_initrc_t;
++ ')
++
++ dontaudit $1 openshift_initrc_t:fifo_file rw_inherited_fifo_file_perms;
++')
++
++########################################
++##
++## Allow calling app to transition to an openshift domain
++##
++##
++##
++## Domain allowed access
++##
++##
++##
++#
++interface(`openshift_transition',`
++ gen_require(`
++ attribute openshift_user_domain;
++ ')
++
++ allow $1 openshift_user_domain:process transition;
++ dontaudit $1 openshift_user_domain:process { noatsecure siginh rlimitinh };
++ allow openshift_user_domain $1:fd use;
++ allow openshift_user_domain $1:fifo_file rw_inherited_fifo_file_perms;
++ allow openshift_user_domain $1:process sigchld;
++ dontaudit $1 openshift_user_domain:socket_class_set { read write };
++')
++
++########################################
++##
++## Allow calling app to transition to an openshift domain
++##
++##
++##
++## Domain allowed access
++##
++##
++##
++#
++interface(`openshift_dyntransition',`
++ gen_require(`
++ attribute openshift_domain;
++ attribute openshift_user_domain;
++ ')
++
++ allow $1 openshift_user_domain:process dyntransition;
++ dontaudit openshift_user_domain $1:key view;
++ allow openshift_user_domain $1:unix_stream_socket { connectto rw_socket_perms };
++ allow openshift_user_domain $1:unix_dgram_socket rw_socket_perms;
++ allow $1 openshift_user_domain:process { rlimitinh signal };
++ dontaudit openshift_domain $1:tcp_socket { read write getattr setopt getopt shutdown };
++')
++
++########################################
++##
++## Execute openshift in the openshift domain, and
++## allow the specified role the openshift domain.
++##
++##
++##
++## Domain allowed to transition.
++##
++##
++##
++##
++## Role allowed access.
++##
++##
++#
++interface(`openshift_run',`
++ gen_require(`
++ type openshift_initrc_exec_t;
++ ')
++
++ openshift_initrc_domtrans($1)
++ role_transition $2 openshift_initrc_exec_t system_r;
++ openshift_transition($1)
++')
+diff --git a/openshift.te b/openshift.te
+new file mode 100644
+index 0000000..72b3bb4
+--- /dev/null
++++ b/openshift.te
+@@ -0,0 +1,419 @@
++policy_module(openshift,1.0.0)
++
++gen_require(`
++ role system_r;
++')
++
++########################################
++#
++# Declarations
++#
++
++# openshift applications that can use the network.
++attribute openshift_net_domain;
++# Attribute representing all openshift user processes execludes run by apache
++attribute openshift_user_domain;
++# Attribute representing all openshift processes
++attribute openshift_domain;
++
++# Attribute for all openshift content
++attribute openshift_file_type;
++
++# Type of openshift init script
++type openshift_initrc_t;
++type openshift_initrc_exec_t;
++init_daemon_domain(openshift_initrc_t, openshift_initrc_exec_t)
++init_ranged_daemon_domain(openshift_initrc_t, openshift_initrc_exec_t, s0 - mcs_systemhigh)
++oddjob_system_entry(openshift_initrc_t, openshift_initrc_exec_t)
++
++type openshift_initrc_tmp_t;
++files_tmp_file(openshift_initrc_tmp_t)
++
++type openshift_tmp_t, openshift_file_type;
++files_tmp_file(openshift_tmp_t)
++files_mountpoint(openshift_tmp_t)
++files_poly(openshift_tmp_t)
++files_poly_parent(openshift_tmp_t)
++
++type openshift_var_run_t;
++files_pid_file(openshift_var_run_t)
++
++type openshift_var_lib_t, openshift_file_type;
++files_poly(openshift_var_lib_t)
++files_poly_parent(openshift_var_lib_t)
++
++type openshift_rw_file_t, openshift_file_type;
++files_poly(openshift_rw_file_t)
++files_poly_parent(openshift_rw_file_t)
++
++type openshift_log_t;
++logging_log_file(openshift_log_t)
++
++type openshift_port_t;
++corenet_port(openshift_port_t)
++corenet_reserved_port(openshift_port_t)
++
++########################################
++#
++# Template to create openshift_t and openshift_app_t
++#
++
++openshift_service_domain_template(openshift)
++
++########################################
++#
++# openshift general local policy
++#
++
++allow openshift_domain self:process { setcurrent getcap getattr fork getpgid setpgid setrlimit setfscreate setsched signal_perms getsched execmem execstack };
++
++allow openshift_domain self:msg all_msg_perms;
++allow openshift_domain self:msgq create_msgq_perms;
++allow openshift_domain self:shm create_shm_perms;
++allow openshift_domain self:sem create_sem_perms;
++# Not sure if we should allow or dontaudit.
++#allow openshift_domain self:socket create_socket_perms;
++dontaudit openshift_domain self:netlink_tcpdiag_socket create;
++allow openshift_domain self:tcp_socket create_stream_socket_perms;
++
++allow openshift_domain self:fifo_file manage_fifo_file_perms;
++allow openshift_domain self:unix_stream_socket { create_stream_socket_perms connectto };
++allow openshift_domain self:unix_dgram_socket { create_socket_perms sendto };
++dontaudit openshift_domain self:netlink_audit_socket { create_socket_perms nlmsg_relay };
++
++allow openshift_domain openshift_log_t:file { getattr append lock ioctl };
++
++dontaudit openshift_domain openshift_initrc_tmp_t:file append;
++dontaudit openshift_domain openshift_var_run_t:file append;
++dontaudit openshift_domain openshift_file_type:sock_file execute;
++
++manage_dirs_pattern(openshift_domain, openshift_file_type, openshift_file_type)
++manage_fifo_files_pattern(openshift_domain, openshift_file_type, openshift_file_type)
++manage_files_pattern(openshift_domain, openshift_file_type, openshift_file_type)
++manage_lnk_files_pattern(openshift_domain, openshift_file_type, openshift_file_type)
++manage_sock_files_pattern(openshift_domain, openshift_file_type, openshift_file_type)
++allow openshift_domain openshift_file_type:file execmod;
++files_read_var_lib_symlinks(openshift_domain)
++can_exec(openshift_domain, openshift_file_type)
++allow openshift_domain openshift_file_type:file entrypoint;
++
++manage_dirs_pattern(openshift_domain, openshift_tmp_t, openshift_tmp_t)
++manage_fifo_files_pattern(openshift_domain, openshift_tmp_t, openshift_tmp_t)
++manage_files_pattern(openshift_domain, openshift_tmp_t, openshift_tmp_t)
++manage_lnk_files_pattern(openshift_domain, openshift_tmp_t, openshift_tmp_t)
++manage_sock_files_pattern(openshift_domain, openshift_tmp_t, openshift_tmp_t)
++files_tmp_filetrans(openshift_user_domain, openshift_tmp_t, { lnk_file file dir sock_file fifo_file })
++allow openshift_domain openshift_tmp_t:dir_file_class_set { relabelfrom relabelto };
++
++list_dirs_pattern(openshift_domain, openshift_var_lib_t, openshift_var_lib_t)
++read_files_pattern(openshift_domain, openshift_var_lib_t, openshift_var_lib_t)
++rw_fifo_files_pattern(openshift_domain, openshift_var_lib_t, openshift_var_lib_t)
++rw_sock_files_pattern(openshift_domain, openshift_var_lib_t, openshift_var_lib_t)
++read_lnk_files_pattern(openshift_domain, openshift_var_lib_t, openshift_var_lib_t)
++allow openshift_domain openshift_var_lib_t:file entrypoint;
++
++# Dontaudit openshift domains trying to search other openshift domains directories,
++# this happens just when users are probing the system
++dontaudit openshift_user_domain openshift_var_lib_t:dir search_dir_perms
++;
++
++kernel_read_system_state(openshift_user_domain)
++kernel_read_network_state(openshift_user_domain)
++kernel_dontaudit_list_all_proc(openshift_user_domain)
++kernel_dontaudit_list_all_sysctls(openshift_user_domain)
++kernel_dontaudit_request_load_module(openshift_user_domain)
++kernel_get_sysvipc_info(openshift_user_domain)
++
++corecmd_exec_bin(openshift_user_domain)
++corecmd_exec_shell(openshift_user_domain)
++corecmd_dontaudit_exec_all_executables(openshift_user_domain)
++# corecmd_dontaudit_read_all_executables(openshift_user_domain)
++
++dev_list_sysfs(openshift_user_domain)
++dev_read_rand(openshift_user_domain)
++dev_dontaudit_append_rand(openshift_user_domain)
++dev_dontaudit_write_urand(openshift_user_domain)
++dev_dontaudit_getattr_all_blk_files(openshift_user_domain)
++dev_dontaudit_getattr_all_chr_files(openshift_user_domain)
++
++domain_use_interactive_fds(openshift_user_domain)
++domain_dontaudit_read_all_domains_state(openshift_user_domain)
++
++fs_rw_hugetlbfs_files(openshift_user_domain)
++fs_dontaudit_rw_anon_inodefs_files(openshift_user_domain)
++fs_search_tmpfs(openshift_user_domain)
++fs_getattr_xattr_fs(openshift_user_domain)
++fs_dontaudit_getattr_all_fs(openshift_user_domain)
++fs_list_inotifyfs(openshift_user_domain)
++fs_dontaudit_list_auto_mountpoints(openshift_user_domain)
++fs_dontaudit_list_tmpfs(openshift_user_domain)
++storage_dontaudit_getattr_fixed_disk_dev(openshift_user_domain)
++storage_getattr_fixed_disk_dev(openshift_user_domain)
++fs_get_xattr_fs_quotas(openshift_user_domain)
++fs_rw_inherited_tmpfs_files(openshift_user_domain)
++fs_dontaudit_rw_anon_inodefs_files(openshift_user_domain)
++
++dontaudit openshift_domain file_type:dir read;
++files_dontaudit_list_home(openshift_user_domain)
++files_dontaudit_search_all_pids(openshift_user_domain)
++files_dontaudit_getattr_all_dirs(openshift_user_domain)
++files_dontaudit_getattr_all_files(openshift_user_domain)
++files_dontaudit_list_mnt(openshift_user_domain)
++files_dontaudit_list_var(openshift_user_domain)
++files_dontaudit_getattr_lost_found_dirs(openshift_user_domain)
++files_dontaudit_search_all_mountpoints(openshift_user_domain)
++files_dontaudit_search_spool(openshift_user_domain)
++files_dontaudit_search_all_dirs(openshift_user_domain)
++files_dontaudit_list_var(openshift_user_domain)
++files_read_etc_files(openshift_user_domain)
++files_exec_etc_files(openshift_user_domain)
++files_read_usr_files(openshift_user_domain)
++files_dontaudit_getattr_non_security_sockets(openshift_user_domain)
++files_dontaudit_setattr_etc_runtime_files(openshift_user_domain)
++
++libs_exec_lib_files(openshift_user_domain)
++libs_exec_ld_so(openshift_user_domain)
++
++logging_send_syslog_msg(openshift_user_domain)
++
++selinux_validate_context(openshift_user_domain)
++
++logging_inherit_append_all_logs(openshift_user_domain)
++
++init_dontaudit_read_utmp(openshift_user_domain)
++
++miscfiles_read_localization(openshift_user_domain)
++miscfiles_read_fonts(openshift_user_domain)
++miscfiles_read_man_pages(openshift_user_domain)
++miscfiles_dontaudit_setattr_fonts_cache_dirs(openshift_user_domain)
++
++mta_dontaudit_read_spool_symlinks(openshift_user_domain)
++
++term_dontaudit_search_ptys(openshift_user_domain)
++term_use_ptmx(openshift_user_domain)
++
++userdom_dontaudit_search_admin_dir(openshift_user_domain)
++
++application_exec(openshift_user_domain)
++
++optional_policy(`
++ apache_exec(openshift_user_domain)
++ apache_exec_modules(openshift_user_domain)
++ apache_list_modules(openshift_user_domain)
++ apache_read_config(openshift_user_domain)
++ apache_search_config(openshift_user_domain)
++ apache_read_sys_content(openshift_user_domain)
++ apache_exec_sys_script(openshift_user_domain)
++')
++
++########################################
++#
++# openshift initrc local policy
++#
++
++mcs_process_set_categories(openshift_initrc_t)
++
++manage_dirs_pattern(openshift_initrc_t, openshift_initrc_tmp_t, openshift_initrc_tmp_t)
++manage_files_pattern(openshift_initrc_t, openshift_initrc_tmp_t, openshift_initrc_tmp_t)
++manage_lnk_files_pattern(openshift_initrc_t, openshift_initrc_tmp_t, openshift_initrc_tmp_t)
++files_tmp_filetrans(openshift_initrc_t, openshift_initrc_tmp_t, { file dir })
++
++manage_dirs_pattern(openshift_initrc_t, openshift_var_run_t, openshift_var_run_t)
++manage_files_pattern(openshift_initrc_t, openshift_var_run_t, openshift_var_run_t)
++manage_lnk_files_pattern(openshift_initrc_t, openshift_var_run_t, openshift_var_run_t)
++files_pid_filetrans(openshift_initrc_t, openshift_var_run_t, { file dir })
++
++manage_dirs_pattern(openshift_initrc_t, openshift_log_t, openshift_log_t)
++manage_files_pattern(openshift_initrc_t, openshift_log_t, openshift_log_t)
++logging_log_filetrans(openshift_initrc_t, openshift_log_t, { file dir })
++
++allow openshift_initrc_t openshift_user_domain:process { getattr getsched setsched transition signal signull sigkill };
++allow openshift_user_domain openshift_initrc_t:fd use;
++allow openshift_user_domain openshift_initrc_t:fifo_file rw_inherited_fifo_file_perms;
++allow openshift_user_domain openshift_initrc_t:process sigchld;
++dontaudit openshift_user_domain openshift_initrc_t:key view;
++dontaudit openshift_user_domain openshift_initrc_t:process signull;
++dontaudit openshift_user_domain openshift_initrc_t:socket_class_set { read write };
++
++optional_policy(`
++ unconfined_domain_noaudit(openshift_initrc_t)
++')
++
++########################################
++#
++# generic policy
++#
++
++corecmd_exec_all_executables(openshift_user_domain)
++
++optional_policy(`
++ apache_entrypoint(openshift_user_domain)
++')
++
++optional_policy(`
++ ssh_getattr_user_home_dir(openshift_user_domain)
++ ssh_dontaudit_search_user_home_dir(openshift_user_domain)
++')
++
++########################################
++#
++# Cron support
++#
++
++optional_policy(`
++ cron_role(system_r, openshift_user_domain)
++')
++
++########################################
++#
++# Mysql support
++#
++
++allow openshift_user_domain self:process setexec;
++
++optional_policy(`
++ mysql_search_db(openshift_user_domain)
++')
++
++########################################
++#
++# Node.js support
++#
++
++allow openshift_user_domain anon_inodefs_t:file write;
++
++#############################################
++#
++# openshift cgi script policy
++#
++
++optional_policy(`
++ apache_content_template(openshift)
++ domtrans_pattern(httpd_openshift_script_t, openshift_initrc_exec_t, openshift_initrc_t)
++ oddjob_dbus_chat(httpd_openshift_script_t)
++ dbus_system_bus_client(httpd_openshift_script_t)
++ ')
++
++
++#################################
++# Potentially dangerous configs #
++#################################
++
++# Allow users to execute files in their home dir
++allow openshift_user_domain openshift_var_lib_t:file { execute execute_no_trans };
++
++#################################
++# Allow Log Rotation #
++#################################
++
++corecmd_shell_entry_type(openshift_user_domain)
++corecmd_bin_entry_type(openshift_user_domain)
++userdom_use_inherited_user_ptys(openshift_user_domain)
++
++optional_policy(`
++ oddjob_dontaudit_rw_fifo_file(openshift_user_domain)
++')
++type openshift_cgroup_read_t;
++type openshift_cgroup_read_exec_t;
++application_domain(openshift_cgroup_read_t, openshift_cgroup_read_exec_t)
++
++optional_policy(`
++ gpg_entry_type(openshift_user_domain)
++')
++
++optional_policy(`
++ apache_exec_rotatelogs(openshift_user_domain)
++')
++
++########################################
++#
++# openshift_cgroup_read local policy
++#
++
++allow openshift_cgroup_read_t self:process { getattr signal_perms };
++allow openshift_cgroup_read_t self:fifo_file rw_fifo_file_perms;
++allow openshift_cgroup_read_t self:unix_stream_socket create_stream_socket_perms;
++allow openshift_cgroup_read_t openshift_initrc_t:fifo_file rw_inherited_fifo_file_perms;
++
++corecmd_exec_bin(openshift_cgroup_read_t)
++
++dev_read_urand(openshift_cgroup_read_t)
++
++domain_use_interactive_fds(openshift_cgroup_read_t)
++
++files_read_etc_files(openshift_cgroup_read_t)
++
++fs_dontaudit_rw_anon_inodefs_files(openshift_cgroup_read_t)
++
++userdom_use_inherited_user_ptys(openshift_cgroup_read_t)
++
++miscfiles_read_generic_certs(openshift_cgroup_read_t)
++miscfiles_read_localization(openshift_cgroup_read_t)
++
++domtrans_pattern(openshift_domain, openshift_cgroup_read_exec_t, openshift_cgroup_read_t)
++role system_r types openshift_cgroup_read_t;
++
++allow openshift_domain openshift_cgroup_read_t:process { getattr signal signull sigkill };
++
++fs_read_cgroup_files(openshift_cgroup_read_t)
++
++allow openshift_cgroup_read_t openshift_var_lib_t:dir list_dir_perms;
++read_files_pattern(openshift_cgroup_read_t, openshift_var_lib_t, openshift_var_lib_t)
++
++optional_policy(`
++ ssh_dontaudit_use_ptys(openshift_cgroup_read_t)
++')
++
++#######################################################
++#
++# Policy for all openshift user domain process
++#
++
++allow openshift_domain self:process ptrace;
++
++manage_dirs_pattern(openshift_domain, openshift_rw_file_t, openshift_rw_file_t)
++manage_files_pattern(openshift_domain, openshift_rw_file_t, openshift_rw_file_t)
++manage_fifo_files_pattern(openshift_domain, openshift_rw_file_t, openshift_rw_file_t)
++manage_sock_files_pattern(openshift_domain, openshift_rw_file_t, openshift_rw_file_t)
++manage_lnk_files_pattern(openshift_domain, openshift_rw_file_t, openshift_rw_file_t)
++list_dirs_pattern(openshift_user_domain, openshift_file_type, openshift_file_type)
++read_files_pattern(openshift_user_domain, openshift_file_type, openshift_file_type)
++rw_fifo_files_pattern(openshift_user_domain, openshift_file_type, openshift_file_type)
++rw_sock_files_pattern(openshift_user_domain, openshift_file_type, openshift_file_type)
++read_lnk_files_pattern(openshift_user_domain, openshift_file_type, openshift_file_type)
++
++term_use_ptmx(openshift_domain)
++
++optional_policy(`
++ ssh_use_ptys(openshift_domain)
++')
++
++#######################################################
++#
++# Policy for openshift user domain process
++#
++
++manage_dirs_pattern(openshift_user_domain, openshift_file_type, openshift_file_type)
++manage_files_pattern(openshift_user_domain, openshift_file_type, openshift_file_type)
++manage_fifo_files_pattern(openshift_user_domain, openshift_file_type, openshift_file_type)
++manage_sock_files_pattern(openshift_user_domain, openshift_file_type, openshift_file_type)
++manage_lnk_files_pattern(openshift_user_domain, openshift_file_type, openshift_file_type)
++allow openshift_user_domain openshift_file_type:dir_file_class_set { relabelfrom relabelto };
++allow openshift_user_domain openshift_domain:process transition;
++allow openshift_user_domain openshift_domain:process ptrace;
++
++############################################################################
++#
++# Rules specific to openshift and openshift_app_t
++#
++
++kernel_read_vm_sysctls(openshift_t)
++kernel_read_vm_sysctls(openshift_app_t)
++kernel_search_vm_sysctl(openshift_t)
++kernel_search_vm_sysctl(openshift_app_t)
++netutils_domtrans_ping(openshift_t)
++netutils_kill_ping(openshift_t)
++netutils_signal_ping(openshift_t)
++
++openshift_net_type(openshift_app_t)
++openshift_net_type(openshift_t)
diff --git a/openvpn.if b/openvpn.if
index d883214..d6afa87 100644
--- a/openvpn.if
@@ -45361,7 +46511,7 @@ index 2855a44..6993089 100644
+ allow $1 puppet_var_run_t:dir search_dir_perms;
+')
diff --git a/puppet.te b/puppet.te
-index baa88f6..f683a84 100644
+index baa88f6..5b66b56 100644
--- a/puppet.te
+++ b/puppet.te
@@ -13,6 +13,13 @@ policy_module(puppet, 1.3.0)
@@ -45484,7 +46634,7 @@ index baa88f6..f683a84 100644
portage_domtrans(puppet_t)
portage_domtrans_fetch(puppet_t)
portage_domtrans_gcc_config(puppet_t)
-@@ -164,8 +191,131 @@ optional_policy(`
+@@ -164,8 +191,135 @@ optional_policy(`
')
optional_policy(`
@@ -45548,6 +46698,10 @@ index baa88f6..f683a84 100644
+')
+
+optional_policy(`
++ openshift_initrc_domtrans(puppet_t)
++')
++
++optional_policy(`
+ quota_filetrans_named_content(puppet_t)
+')
+
@@ -45618,7 +46772,7 @@ index baa88f6..f683a84 100644
')
########################################
-@@ -184,51 +334,84 @@ allow puppetmaster_t self:udp_socket create_socket_perms;
+@@ -184,51 +338,84 @@ allow puppetmaster_t self:udp_socket create_socket_perms;
list_dirs_pattern(puppetmaster_t, puppet_etc_t, puppet_etc_t)
read_files_pattern(puppetmaster_t, puppet_etc_t, puppet_etc_t)
@@ -45709,7 +46863,7 @@ index baa88f6..f683a84 100644
optional_policy(`
hostname_exec(puppetmaster_t)
')
-@@ -239,3 +422,9 @@ optional_policy(`
+@@ -239,3 +426,9 @@ optional_policy(`
rpm_exec(puppetmaster_t)
rpm_read_db(puppetmaster_t)
')
@@ -49862,7 +51016,7 @@ index 137605a..7624759 100644
+ ')
')
diff --git a/rhsmcertd.te b/rhsmcertd.te
-index 783f678..a94c367 100644
+index 783f678..72af387 100644
--- a/rhsmcertd.te
+++ b/rhsmcertd.te
@@ -29,6 +29,9 @@ files_pid_file(rhsmcertd_var_run_t)
@@ -49875,7 +51029,7 @@ index 783f678..a94c367 100644
allow rhsmcertd_t self:fifo_file rw_fifo_file_perms;
allow rhsmcertd_t self:unix_stream_socket create_stream_socket_perms;
-@@ -43,17 +46,26 @@ manage_files_pattern(rhsmcertd_t, rhsmcertd_var_lib_t, rhsmcertd_var_lib_t)
+@@ -43,17 +46,30 @@ manage_files_pattern(rhsmcertd_t, rhsmcertd_var_lib_t, rhsmcertd_var_lib_t)
manage_dirs_pattern(rhsmcertd_t, rhsmcertd_var_run_t, rhsmcertd_var_run_t)
manage_files_pattern(rhsmcertd_t, rhsmcertd_var_run_t, rhsmcertd_var_run_t)
@@ -49903,6 +51057,10 @@ index 783f678..a94c367 100644
sysnet_dns_name_resolve(rhsmcertd_t)
+
+rpm_read_db(rhsmcertd_t)
++
++optional_policy(`
++ gnome_dontaudit_search_config(rhsmcertd_t)
++')
diff --git a/ricci.fc b/ricci.fc
index 5b08327..4d5819e 100644
--- a/ricci.fc
@@ -51433,7 +52591,7 @@ index 951d8f6..8ba0f86 100644
+ allow rpm_script_t $1:process sigchld;
+')
diff --git a/rpm.te b/rpm.te
-index 60149a5..aa590f5 100644
+index 60149a5..31fc8f1 100644
--- a/rpm.te
+++ b/rpm.te
@@ -1,12 +1,11 @@
@@ -51703,7 +52861,7 @@ index 60149a5..aa590f5 100644
')
optional_policy(`
-@@ -372,8 +401,13 @@ optional_policy(`
+@@ -372,8 +401,17 @@ optional_policy(`
')
optional_policy(`
@@ -51714,12 +52872,16 @@ index 60149a5..aa590f5 100644
+')
+
+optional_policy(`
++ openshift_initrc_domtrans(rpm_script_t)
++')
++
++optional_policy(`
+ tzdata_domtrans(rpm_t)
+ tzdata_domtrans(rpm_script_t)
')
optional_policy(`
-@@ -381,7 +415,7 @@ optional_policy(`
+@@ -381,7 +419,7 @@ optional_policy(`
')
optional_policy(`
@@ -51728,7 +52890,7 @@ index 60149a5..aa590f5 100644
unconfined_domtrans(rpm_script_t)
optional_policy(`
-@@ -394,6 +428,6 @@ optional_policy(`
+@@ -394,6 +432,6 @@ optional_policy(`
')
optional_policy(`
@@ -63040,7 +64202,7 @@ index 6f0736b..aaee499 100644
+ allow svirt_lxc_domain $1:process sigchld;
')
diff --git a/virt.te b/virt.te
-index 947bbc6..d820f4c 100644
+index 947bbc6..35ef05b 100644
--- a/virt.te
+++ b/virt.te
@@ -5,56 +5,87 @@ policy_module(virt, 1.5.0)
@@ -63695,7 +64857,7 @@ index 947bbc6..d820f4c 100644
term_getattr_pty_fs(virt_domain)
term_use_generic_ptys(virt_domain)
term_use_ptmx(virt_domain)
-@@ -459,13 +688,469 @@ logging_send_syslog_msg(virt_domain)
+@@ -459,13 +688,471 @@ logging_send_syslog_msg(virt_domain)
miscfiles_read_localization(virt_domain)
@@ -64160,6 +65322,8 @@ index 947bbc6..d820f4c 100644
+allow virt_bridgehelper_t self:tun_socket create_socket_perms;
+allow virt_bridgehelper_t self:unix_dgram_socket create_socket_perms;
+
++manage_files_pattern(virt_bridgehelper_t, svirt_home_t, svirt_home_t)
++
+kernel_read_network_state(virt_bridgehelper_t)
+
+corenet_rw_tun_tap_dev(virt_bridgehelper_t)
@@ -65897,7 +67061,7 @@ index 21ae664..cb3a098 100644
+ manage_dirs_pattern($1, zarafa_var_lib_t, zarafa_var_lib_t)
+')
diff --git a/zarafa.te b/zarafa.te
-index 91267bc..5bce06b 100644
+index 91267bc..e52c851 100644
--- a/zarafa.te
+++ b/zarafa.te
@@ -18,6 +18,10 @@ files_config_file(zarafa_etc_t)
@@ -65911,15 +67075,19 @@ index 91267bc..5bce06b 100644
zarafa_domain_template(monitor)
zarafa_domain_template(server)
-@@ -51,7 +55,6 @@ auth_use_nsswitch(zarafa_deliver_t)
- allow zarafa_gateway_t self:capability { chown kill };
+@@ -48,10 +52,9 @@ auth_use_nsswitch(zarafa_deliver_t)
+ # zarafa_gateway local policy
+ #
+
+-allow zarafa_gateway_t self:capability { chown kill };
++allow zarafa_gateway_t self:capability { kill };
allow zarafa_gateway_t self:process setrlimit;
-corenet_all_recvfrom_unlabeled(zarafa_gateway_t)
corenet_all_recvfrom_netlabel(zarafa_gateway_t)
corenet_tcp_sendrecv_generic_if(zarafa_gateway_t)
corenet_tcp_sendrecv_generic_node(zarafa_gateway_t)
-@@ -59,7 +62,22 @@ corenet_tcp_sendrecv_all_ports(zarafa_gateway_t)
+@@ -59,16 +62,28 @@ corenet_tcp_sendrecv_all_ports(zarafa_gateway_t)
corenet_tcp_bind_generic_node(zarafa_gateway_t)
corenet_tcp_bind_pop_port(zarafa_gateway_t)
@@ -65929,7 +67097,6 @@ index 91267bc..5bce06b 100644
+# zarafa-indexer local policy
+#
+
-+allow zarafa_indexer_t self:capability chown;
+
+manage_dirs_pattern(zarafa_indexer_t, zarafa_indexer_tmp_t, zarafa_indexer_tmp_t)
+manage_files_pattern(zarafa_indexer_t, zarafa_indexer_tmp_t, zarafa_indexer_tmp_t)
@@ -65943,15 +67110,33 @@ index 91267bc..5bce06b 100644
#######################################
#
-@@ -68,7 +86,6 @@ auth_use_nsswitch(zarafa_gateway_t)
+ # zarafa-ical local policy
+ #
- allow zarafa_ical_t self:capability chown;
+-allow zarafa_ical_t self:capability chown;
-corenet_all_recvfrom_unlabeled(zarafa_ical_t)
corenet_all_recvfrom_netlabel(zarafa_ical_t)
corenet_tcp_sendrecv_generic_if(zarafa_ical_t)
corenet_tcp_sendrecv_generic_node(zarafa_ical_t)
-@@ -101,11 +118,11 @@ files_tmp_filetrans(zarafa_server_t, zarafa_server_tmp_t, { file dir })
+@@ -83,7 +98,6 @@ auth_use_nsswitch(zarafa_ical_t)
+ # zarafa-monitor local policy
+ #
+
+-allow zarafa_monitor_t self:capability chown;
+
+ auth_use_nsswitch(zarafa_monitor_t)
+
+@@ -92,7 +106,7 @@ auth_use_nsswitch(zarafa_monitor_t)
+ # zarafa_server local policy
+ #
+
+-allow zarafa_server_t self:capability { chown kill net_bind_service };
++allow zarafa_server_t self:capability { kill net_bind_service };
+ allow zarafa_server_t self:process setrlimit;
+
+ manage_dirs_pattern(zarafa_server_t, zarafa_server_tmp_t, zarafa_server_tmp_t)
+@@ -101,11 +115,11 @@ files_tmp_filetrans(zarafa_server_t, zarafa_server_tmp_t, { file dir })
manage_dirs_pattern(zarafa_server_t, zarafa_var_lib_t, zarafa_var_lib_t)
manage_files_pattern(zarafa_server_t, zarafa_var_lib_t, zarafa_var_lib_t)
@@ -65965,7 +67150,12 @@ index 91267bc..5bce06b 100644
corenet_all_recvfrom_netlabel(zarafa_server_t)
corenet_tcp_sendrecv_generic_if(zarafa_server_t)
corenet_tcp_sendrecv_generic_node(zarafa_server_t)
-@@ -139,7 +156,6 @@ allow zarafa_spooler_t self:capability { chown kill };
+@@ -135,11 +149,10 @@ optional_policy(`
+ # zarafa_spooler local policy
+ #
+
+-allow zarafa_spooler_t self:capability { chown kill };
++allow zarafa_spooler_t self:capability { kill };
can_exec(zarafa_spooler_t, zarafa_spooler_exec_t)
@@ -65973,7 +67163,44 @@ index 91267bc..5bce06b 100644
corenet_all_recvfrom_netlabel(zarafa_spooler_t)
corenet_tcp_sendrecv_generic_if(zarafa_spooler_t)
corenet_tcp_sendrecv_generic_node(zarafa_spooler_t)
-@@ -164,8 +180,13 @@ stream_connect_pattern(zarafa_domain, zarafa_server_var_run_t, zarafa_server_var
+@@ -150,11 +163,35 @@ auth_use_nsswitch(zarafa_spooler_t)
+
+ ########################################
+ #
++# zarafa_gateway local policy
++#
++
++allow zarafa_gateway_t self:capability { kill };
++allow zarafa_gateway_t self:process setrlimit;
++
++corenet_tcp_bind_pop_port(zarafa_gateway_t)
++
++#######################################
++#
++# zarafa-ical local policy
++#
++
++
++corenet_tcp_bind_http_cache_port(zarafa_ical_t)
++
++######################################
++#
++# zarafa-monitor local policy
++#
++
++
++########################################
++#
+ # zarafa domains local policy
+ #
+
+ # bad permission on /etc/zarafa
+-allow zarafa_domain self:capability { dac_override setgid setuid };
++allow zarafa_domain self:capability { dac_override chown setgid setuid };
+ allow zarafa_domain self:process signal;
+ allow zarafa_domain self:fifo_file rw_fifo_file_perms;
+ allow zarafa_domain self:tcp_socket create_stream_socket_perms;
+@@ -164,8 +201,13 @@ stream_connect_pattern(zarafa_domain, zarafa_server_var_run_t, zarafa_server_var
read_files_pattern(zarafa_domain, zarafa_etc_t, zarafa_etc_t)
diff --git a/selinux-policy.spec b/selinux-policy.spec
index 08e199c..5f1571b 100644
--- a/selinux-policy.spec
+++ b/selinux-policy.spec
@@ -19,7 +19,7 @@
Summary: SELinux policy configuration
Name: selinux-policy
Version: 3.11.1
-Release: 16%{?dist}
+Release: 17%{?dist}
License: GPLv2+
Group: System Environment/Base
Source: serefpolicy-%{version}.tgz
@@ -495,6 +495,17 @@ SELinux Reference policy mls base module.
%endif
%changelog
+* Mon Sep 10 2012 Miroslav Grepl 3.11.1-17
+- Merge openshift policy
+- Allow xauth to read /dev/urandom
+- systemd needs to relabel content in /run/systemd directories
+- Files unconfined should be able to perform all services on all files
+- Puppet tmp file can be leaked to all domains
+- Dontaudit rhsmcertd-worker to search /root/.local
+- Allow chown capability for zarafa domains
+- Allow system cronjobs to runcon into openshift domains
+- Allow virt_bridgehelper_t to manage content in the svirt_home_t labeled directories
+
* Fri Sep 7 2012 Miroslav Grepl 3.11.1-16
- nmbd wants to create /var/nmbd
- Stop transitioning out of anaconda and firstboot, just causes AVC messages