diff --git a/refpolicy/policy/modules/admin/dmesg.if b/refpolicy/policy/modules/admin/dmesg.if
index 4471ed6..3eba936 100644
--- a/refpolicy/policy/modules/admin/dmesg.if
+++ b/refpolicy/policy/modules/admin/dmesg.if
@@ -10,6 +10,10 @@
#
interface(`dmesg_domtrans',`
ifdef(`targeted_policy',`
+ gen_require(`
+ type dmesg_exec_t;
+ ')
+
# $0(): disabled in targeted policy as there
# is no dmesg domain.
',`
diff --git a/refpolicy/policy/modules/admin/dmesg.te b/refpolicy/policy/modules/admin/dmesg.te
index a46294b..fa1861e 100644
--- a/refpolicy/policy/modules/admin/dmesg.te
+++ b/refpolicy/policy/modules/admin/dmesg.te
@@ -6,24 +6,26 @@ policy_module(dmesg, 1.0)
# Declarations
#
-ifdef(`targeted_policy',`
- # for compatibility with strict:
- corecmd_bin_alias(dmesg_exec_t)
-',`
+ifdef(`strict_policy',`
type dmesg_t;
type dmesg_exec_t;
init_system_domain(dmesg_t,dmesg_exec_t)
role system_r types dmesg_t;
')
+ifdef(`targeted_policy',`
+ # dmesg domain is disabled in the
+ # targeted policy. for compatibility
+ # with strict:
+ corecmd_bin_alias(dmesg_exec_t)
+')
+
########################################
#
# Local policy
#
-ifdef(`targeted_policy',`
- # dmesg domain disabled in targeted policy
-',`
+ifdef(`strict_policy',`
allow dmesg_t self:capability sys_admin;
dontaudit dmesg_t self:capability sys_tty_config;
diff --git a/refpolicy/policy/modules/admin/updfstab.if b/refpolicy/policy/modules/admin/updfstab.if
index 5474833..753454f 100644
--- a/refpolicy/policy/modules/admin/updfstab.if
+++ b/refpolicy/policy/modules/admin/updfstab.if
@@ -22,22 +22,3 @@ interface(`updfstab_domtrans',`
allow updfstab_t $1:fifo_file rw_file_perms;
allow updfstab_t $1:process sigchld;
')
-
-########################################
-##
-## Send and receive messages from
-## updfstab over dbus.
-##
-##
-## Domain allowed access.
-##
-#
-interface(`updfstab_dbus_chat',`
- gen_require(`
- type updfstab_t;
- class dbus send_msg;
- ')
-
- allow $1 updfstab_t:dbus send_msg;
- allow updfstab_t $1:dbus send_msg;
-')
diff --git a/refpolicy/policy/modules/admin/updfstab.te b/refpolicy/policy/modules/admin/updfstab.te
index 60a1468..7fa74b4 100644
--- a/refpolicy/policy/modules/admin/updfstab.te
+++ b/refpolicy/policy/modules/admin/updfstab.te
@@ -1,5 +1,5 @@
-policy_module(updfstab,1.0.2)
+policy_module(updfstab,1.0.3)
########################################
#
@@ -94,6 +94,8 @@ optional_policy(`authlogin',`
')
optional_policy(`dbus',`
+ init_dbus_chat_script(updfstab_t)
+
dbus_system_bus_client_template(updfstab,updfstab_t)
dbus_send_system_bus_msg(updfstab_t)
')
diff --git a/refpolicy/policy/modules/kernel/files.if b/refpolicy/policy/modules/kernel/files.if
index c43fa98..b78d961 100644
--- a/refpolicy/policy/modules/kernel/files.if
+++ b/refpolicy/policy/modules/kernel/files.if
@@ -2130,6 +2130,23 @@ interface(`files_read_generic_tmp_symlinks',`
########################################
##
+## Read and write generic named sockets in the tmp directory (/tmp).
+##
+##
+## The type of the process performing this action.
+##
+#
+interface(`files_rw_generic_tmp_sockets',`
+ gen_require(`
+ type tmp_t;
+ ')
+
+ allow $1 tmp_t:dir search_dir_perms;
+ allow $1 tmp_t:sock_file { read write };
+')
+
+########################################
+##
## Set the attributes of all tmp directories.
##
##
diff --git a/refpolicy/policy/modules/kernel/filesystem.if b/refpolicy/policy/modules/kernel/filesystem.if
index c067a6e..f089669 100644
--- a/refpolicy/policy/modules/kernel/filesystem.if
+++ b/refpolicy/policy/modules/kernel/filesystem.if
@@ -1229,10 +1229,26 @@ interface(`fs_read_nfs_symlinks',`
## The type of the domain reading the symbolic links.
##
#
+interface(`fs_getattr_rpc_dirs',`
+ gen_require(`
+ type rpc_pipefs_t;
+ ')
+
+ allow $1 rpc_pipefs_t:dir getattr;
+
+')
+
+########################################
+##
+## Read directories of RPC file system pipes.
+##
+##
+## The type of the domain reading the symbolic links.
+##
+#
interface(`fs_read_rpc_dirs',`
gen_require(`
type rpc_pipefs_t;
- class dir { getattr read search };
')
allow $1 rpc_pipefs_t:dir { getattr read search };
diff --git a/refpolicy/policy/modules/kernel/mls.te b/refpolicy/policy/modules/kernel/mls.te
index da7bb73..1a040dd 100644
--- a/refpolicy/policy/modules/kernel/mls.te
+++ b/refpolicy/policy/modules/kernel/mls.te
@@ -1,5 +1,5 @@
-policy_module(mls,1.0)
+policy_module(mls,1.0.1)
########################################
#
@@ -58,6 +58,7 @@ type login_exec_t;
type init_t;
type init_exec_t;
type initrc_t;
+type initrc_exec_t;
type sshd_exec_t;
type su_exec_t;
type udev_exec_t;
diff --git a/refpolicy/policy/modules/services/bind.if b/refpolicy/policy/modules/services/bind.if
index e0f730b..c84daf6 100644
--- a/refpolicy/policy/modules/services/bind.if
+++ b/refpolicy/policy/modules/services/bind.if
@@ -23,6 +23,22 @@ interface(`bind_domtrans_ndc',`
########################################
##
+## Send generic signals to BIND.
+##
+##
+## Domain allowed access.
+##
+#
+interface(`bind_signal',`
+ gen_require(`
+ type named_t;
+ ')
+
+ allow $1 named_t:process signal;
+')
+
+########################################
+##
## Execute ndc in the ndc domain, and
## allow the specified role the ndc domain.
##
@@ -137,6 +153,27 @@ interface(`bind_manage_config_dir',`
########################################
##
+## Create, read, write, and delete
+## BIND cache files.
+##
+##
+## Domain allowed access.
+##
+#
+interface(`bind_manage_cache',`
+ gen_require(`
+ type named_cache_t, named_zone_t;
+ ')
+
+ files_search_var($1)
+ allow $1 named_zone_t:dir search_dir_perms;
+ allow $1 named_cache_t:dir rw_dir_perms;
+ allow $1 named_cache_t:file create_file_perms;
+ allow $1 named_cache_t:lnk_file create_lnk_perms;
+')
+
+########################################
+##
## Do not audit attempts to set the attributes
## of the BIND pid directory.
##
diff --git a/refpolicy/policy/modules/services/bind.te b/refpolicy/policy/modules/services/bind.te
index a5869ea..9ecba81 100644
--- a/refpolicy/policy/modules/services/bind.te
+++ b/refpolicy/policy/modules/services/bind.te
@@ -1,5 +1,5 @@
-policy_module(bind,0.9)
+policy_module(bind,1.0.0)
########################################
#
@@ -150,15 +150,37 @@ ifdef(`targeted_policy',`
files_dontaudit_read_root_file(named_t)
')
+tunable_policy(`named_write_master_zones',`
+ allow named_t named_zone_t:dir create_dir_perms;
+ allow named_t named_zone_t:file create_file_perms;
+ allow named_t named_zone_t:lnk_file create_lnk_perms;
+')
+
optional_policy(`dbus',`
- gen_require(`
- class dbus send_msg;
- ')
+ init_dbus_chat_script(named_t)
+
+ sysnet_dbus_chat_dhcpc(named_t)
- allow named_t self:dbus send_msg;
dbus_system_bus_client_template(named,named_t)
dbus_connect_system_bus(named_t)
dbus_send_system_bus_msg(named_t)
+
+ optional_policy(`networkmanager',`
+ networkmanager_dbus_chat(named_t)
+ ')
+')
+
+optional_policy(`mount',`
+ mount_send_nfs_client_request(named_t)
+')
+
+optional_policy(`networkmanager',`
+ # this seems like fds that arent being
+ # closed. these should probably be
+ # dontaudits instead.
+ networkmanager_rw_udp_socket(named_t)
+ networkmanager_rw_packet_socket(named_t)
+ networkmanager_rw_routing_socket(named_t)
')
optional_policy(`nis',`
@@ -250,16 +272,6 @@ ifdef(`targeted_policy',`
term_use_generic_pty(ndc_t)
')
-tunable_policy(`named_write_master_zones',`
- allow named_t named_zone_t:dir create_dir_perms;
- allow named_t named_zone_t:file create_file_perms;
- allow named_t named_zone_t:lnk_file create_lnk_perms;
-')
-
-optional_policy(`mount',`
- mount_send_nfs_client_request(named_t)
-')
-
optional_policy(`nis',`
nis_use_ypbind(ndc_t)
')
@@ -268,46 +280,6 @@ optional_policy(`nscd',`
nscd_use_socket(ndc_t)
')
-optional_policy(`bind',`
+optional_policy(`ppp',`
ppp_dontaudit_use_fd(ndc_t)
')
-
-###########################################################
-#
-# Partially converted rules. THESE ARE ONLY TEMPORARY
-#
-
-allow named_t initrc_t:dbus send_msg;
-allow initrc_t named_t:dbus send_msg;
-allow named_t dhcpc_t:dbus send_msg;
-allow dhcpc_t named_t:dbus send_msg;
-
-# cjp: this whole block was originally in networkmanager
-optional_policy(`networkmanager',`
- gen_require(`
- type NetworkManager_t;
- ')
-
-# optional_policy(`dbus',`
- gen_require(`
- class dbus send_msg;
- ')
-
- allow NetworkManager_t named_t:dbus send_msg;
- allow named_t NetworkManager_t:dbus send_msg;
-# ')
-
- bind_domtrans(NetworkManager_t)
-
- allow NetworkManager_t named_zone_t:dir search;
-
- allow NetworkManager_t named_cache_t:dir rw_dir_perms;
- allow NetworkManager_t named_cache_t:file create_file_perms;
- allow NetworkManager_t named_cache_t:lnk_file create_lnk_perms;
-
- allow named_t NetworkManager_t:udp_socket { read write };
- allow named_t NetworkManager_t:netlink_route_socket { read write };
-
- allow NetworkManager_t named_t:process signal;
- allow named_t NetworkManager_t:packet_socket { read write };
-')
diff --git a/refpolicy/policy/modules/services/bluetooth.if b/refpolicy/policy/modules/services/bluetooth.if
index a0b1bc1..e2db8fe 100644
--- a/refpolicy/policy/modules/services/bluetooth.if
+++ b/refpolicy/policy/modules/services/bluetooth.if
@@ -23,6 +23,25 @@ interface(`bluetooth_domtrans_helper',`
########################################
##
+## Send and receive messages from
+## bluetooth over dbus.
+##
+##
+## Domain allowed access.
+##
+#
+interface(`bluetooth_dbus_chat',`
+ gen_require(`
+ type bluetooth_t;
+ class dbus send_msg;
+ ')
+
+ allow $1 bluetooth_t:dbus send_msg;
+ allow bluetooth_t $1:dbus send_msg;
+')
+
+########################################
+##
## Execute bluetooth_helper in the bluetooth_helper domain, and
## allow the specified role the bluetooth_helper domain.
##
diff --git a/refpolicy/policy/modules/services/bluetooth.te b/refpolicy/policy/modules/services/bluetooth.te
index b17758d..8b35c1d 100644
--- a/refpolicy/policy/modules/services/bluetooth.te
+++ b/refpolicy/policy/modules/services/bluetooth.te
@@ -1,5 +1,5 @@
-policy_module(bluetooth,1.0)
+policy_module(bluetooth,1.0.1)
########################################
#
@@ -214,22 +214,15 @@ ifdef(`xserver.te', `
allow bluetooth_helper_t xserver_log_t:file { getattr read };
')
-ifdef(`targeted_policy', `', `
- ifdef(`xdm.te', `
+ifdef(`strict_policy',`
+ ifdef(`xdm.te',`
allow bluetooth_helper_t xdm_xserver_tmp_t:sock_file { read write };
')
-
- allow bluetooth_t unpriv_userdomain:dbus send_msg;
- allow unpriv_userdomain bluetooth_t:dbus send_msg;
')
') dnl end TODO
ifdef(`targeted_policy',`
- allow bluetooth_helper_t tmp_t:sock_file { read write };
+ files_rw_generic_tmp_sockets(bluetooth_helper_t)
allow bluetooth_helper_t tmpfs_t:file { read write };
allow bluetooth_helper_t unconfined_t:unix_stream_socket connectto;
- allow bluetooth_t unconfined_t:dbus send_msg;
- allow unconfined_t bluetooth_t:dbus send_msg;
- allow bluetooth_t unconfined_t:dbus send_msg;
- allow unconfined_t bluetooth_t:dbus send_msg;
')
diff --git a/refpolicy/policy/modules/services/cups.if b/refpolicy/policy/modules/services/cups.if
index d918292..c1d77ab 100644
--- a/refpolicy/policy/modules/services/cups.if
+++ b/refpolicy/policy/modules/services/cups.if
@@ -23,6 +23,25 @@ interface(`cups_domtrans',`
########################################
##
+## Send and receive messages from
+## cups over dbus.
+##
+##
+## Domain allowed access.
+##
+#
+interface(`cups_dbus_chat',`
+ gen_require(`
+ type cupsd_t;
+ class dbus send_msg;
+ ')
+
+ allow $1 cupsd_t:dbus send_msg;
+ allow cupsd_t $1:dbus send_msg;
+')
+
+########################################
+##
## Execute cups_config in the cups_config domain.
##
##
diff --git a/refpolicy/policy/modules/services/cups.te b/refpolicy/policy/modules/services/cups.te
index 62862a3..34be188 100644
--- a/refpolicy/policy/modules/services/cups.te
+++ b/refpolicy/policy/modules/services/cups.te
@@ -1,5 +1,5 @@
-policy_module(cups,1.0.1)
+policy_module(cups,1.0.2)
########################################
#
@@ -627,13 +627,23 @@ allow cupsd_config_t printconf_t:file { getattr read };
allow cupsd_config_t initrc_exec_t:file getattr;
ifdef(`targeted_policy', `
- allow cupsd_t initrc_t:unix_stream_socket connectto;
- allow cupsd_t initrc_t:dbus send_msg;
- allow initrc_t cupsd_t:dbus send_msg;
- allow { cupsd_config_t cupsd_t } unconfined_t:dbus send_msg;
- allow unconfined_t cupsd_config_t:dbus send_msg;
- allow { cupsd_t cupsd_config_t } unconfined_t:fifo_file r_file_perms;
+ init_unix_connect_script(cupsd_t)
+
+ unconfined_read_pipe(cupsd_t)
+
+ optional_policy(`dbus',`
+ init_dbus_chat_script(cupsd_t)
+
+ unconfined_dbus_send(cupsd_t)
+
+ dbus_stub(cupsd_t)
+ ')
+')
+
+ifdef(`targeted_policy',`
term_use_generic_pty(cupsd_config_t)
+
+ unconfined_read_pipe(cupsd_config_t)
')
########################################
diff --git a/refpolicy/policy/modules/services/networkmanager.if b/refpolicy/policy/modules/services/networkmanager.if
index e07d97d..200795e 100644
--- a/refpolicy/policy/modules/services/networkmanager.if
+++ b/refpolicy/policy/modules/services/networkmanager.if
@@ -2,6 +2,58 @@
########################################
##
+## Read and write NetworkManager UDP sockets.
+##
+##
+## Domain allowed access.
+##
+#
+# cjp: added for named.
+interface(`networkmanager_rw_udp_socket',`
+ gen_require(`
+ type NetworkManager_t;
+ ')
+
+ allow $1 NetworkManager_t:udp_socket { read write };
+')
+
+########################################
+##
+## Read and write NetworkManager packet sockets.
+##
+##
+## Domain allowed access.
+##
+#
+# cjp: added for named.
+interface(`networkmanager_rw_packet_socket',`
+ gen_require(`
+ type NetworkManager_t;
+ ')
+
+ allow $1 NetworkManager_t:packet_socket { read write };
+')
+
+########################################
+##
+## Read and write NetworkManager netlink
+## routing sockets.
+##
+##
+## Domain allowed access.
+##
+#
+# cjp: added for named.
+interface(`networkmanager_rw_routing_socket',`
+ gen_require(`
+ type NetworkManager_t;
+ ')
+
+ allow $1 NetworkManager_t:netlink_route_socket { read write };
+')
+
+########################################
+##
## Send and receive messages from
## NetworkManager over dbus.
##
diff --git a/refpolicy/policy/modules/services/networkmanager.te b/refpolicy/policy/modules/services/networkmanager.te
index 69472b9..c0a7805 100644
--- a/refpolicy/policy/modules/services/networkmanager.te
+++ b/refpolicy/policy/modules/services/networkmanager.te
@@ -117,6 +117,12 @@ ifdef(`targeted_policy', `
files_dontaudit_read_root_file(NetworkManager_t)
')
+optional_policy(`bind',`
+ bind_domtrans(NetworkManager_t)
+ bind_manage_cache(NetworkManager_t)
+ bind_signal(NetworkManager_t)
+')
+
optional_policy(`bluetooth',`
bluetooth_dontaudit_read_helper_files(NetworkManager_t)
')
diff --git a/refpolicy/policy/modules/services/rpc.if b/refpolicy/policy/modules/services/rpc.if
index 0e854fc..da50403 100644
--- a/refpolicy/policy/modules/services/rpc.if
+++ b/refpolicy/policy/modules/services/rpc.if
@@ -272,3 +272,20 @@ interface(`rpc_udp_sendto_nfs',`
allow nfsd_t $1:udp_socket sendto;
allow $1 nfsd_t:udp_socket recvfrom;
')
+
+########################################
+##
+## Search NFS state data in /var/lib/nfs.
+##
+##
+## Domain allowed access.
+##
+#
+interface(`rpc_search_nfs_state_data',`
+ gen_require(`
+ type var_lib_nfs_t;
+ ')
+
+ files_search_var_lib($1)
+ allow $1 var_lib_nfs_t:dir search;
+')
diff --git a/refpolicy/policy/modules/services/snmp.te b/refpolicy/policy/modules/services/snmp.te
index e8f3794..a7ed81b 100644
--- a/refpolicy/policy/modules/services/snmp.te
+++ b/refpolicy/policy/modules/services/snmp.te
@@ -1,5 +1,5 @@
-policy_module(snmp,1.0.1)
+policy_module(snmp,1.0.2)
########################################
#
@@ -56,6 +56,10 @@ kernel_read_system_state(snmpd_t)
kernel_read_network_state(snmpd_t)
kernel_tcp_recvfrom(snmpd_t)
+corecmd_exec_bin(snmpd_t)
+corecmd_exec_sbin(snmpd_t)
+corecmd_exec_shell(snmpd_t)
+
corenet_tcp_sendrecv_all_if(snmpd_t)
corenet_udp_sendrecv_all_if(snmpd_t)
corenet_raw_sendrecv_all_if(snmpd_t)
@@ -74,18 +78,6 @@ dev_read_sysfs(snmpd_t)
dev_read_urand(snmpd_t)
dev_read_rand(snmpd_t)
-fs_getattr_all_fs(snmpd_t)
-fs_search_auto_mountpoints(snmpd_t)
-
-storage_dontaudit_read_fixed_disk(snmpd_t)
-storage_dontaudit_read_removable_device(snmpd_t)
-
-term_dontaudit_use_console(snmpd_t)
-
-corecmd_exec_bin(snmpd_t)
-corecmd_exec_sbin(snmpd_t)
-corecmd_exec_shell(snmpd_t)
-
domain_use_wide_inherit_fd(snmpd_t)
domain_signull_all_domains(snmpd_t)
domain_read_all_domains_state(snmpd_t)
@@ -95,6 +87,15 @@ files_read_usr_files(snmpd_t)
files_read_etc_runtime_files(snmpd_t)
files_search_home(snmpd_t)
+fs_getattr_all_fs(snmpd_t)
+fs_getattr_rpc_dirs(snmpd_t)
+fs_search_auto_mountpoints(snmpd_t)
+
+storage_dontaudit_read_fixed_disk(snmpd_t)
+storage_dontaudit_read_removable_device(snmpd_t)
+
+term_dontaudit_use_console(snmpd_t)
+
init_read_script_pid(snmpd_t)
init_use_fd(snmpd_t)
init_use_script_pty(snmpd_t)
@@ -131,6 +132,10 @@ optional_policy(`amanda',`
amanda_dontaudit_read_dumpdates(snmpd_t)
')
+optional_policy(`cups',`
+ cups_read_rw_config(snmpd_t)
+')
+
optional_policy(`nis',`
nis_use_ypbind(snmpd_t)
')
@@ -139,6 +144,10 @@ optional_policy(`nscd',`
nscd_use_socket(snmpd_t)
')
+optional_policy(`rpc',`
+ rpc_search_nfs_state_data(snmpd_t)
+')
+
optional_policy(`selinuxutil',`
seutil_sigchld_newrole(snmpd_t)
')
@@ -150,11 +159,4 @@ optional_policy(`udev',`
ifdef(`TODO',`
can_udp_send(sysadm_t, snmpd_t)
can_udp_send(snmpd_t, sysadm_t)
-
-optional_policy(`cupsd',`
- allow snmpd_t cupsd_rw_etc_t:file { getattr read };
-')
') dnl end TODO
-
-allow snmpd_t rpc_pipefs_t:dir getattr;
-allow snmpd_t var_lib_nfs_t:dir search;
diff --git a/refpolicy/policy/modules/system/authlogin.if b/refpolicy/policy/modules/system/authlogin.if
index 0afd82a..f6a54b3 100644
--- a/refpolicy/policy/modules/system/authlogin.if
+++ b/refpolicy/policy/modules/system/authlogin.if
@@ -138,7 +138,7 @@ template(`authlogin_per_userdomain_template',`
template(`auth_domtrans_user_chk_passwd',`
ifdef(`targeted_policy',`
gen_require(`
- type chkpwd_exec_t;
+ type system_chkpwd_t, chkpwd_exec_t;
')
domain_auto_trans($2,chkpwd_exec_t,system_chkpwd_t)
diff --git a/refpolicy/policy/modules/system/init.if b/refpolicy/policy/modules/system/init.if
index d12b7f2..73bfa56 100644
--- a/refpolicy/policy/modules/system/init.if
+++ b/refpolicy/policy/modules/system/init.if
@@ -469,7 +469,6 @@ interface(`init_unix_connect_script',`
interface(`init_dontaudit_unix_connect_script',`
gen_require(`
type initrc_t;
- class unix_stream_socket connectto;
')
dontaudit $1 initrc_t:unix_stream_socket connectto;
@@ -693,6 +692,25 @@ interface(`init_unix_connect_script',`
########################################
##
+## Send and receive messages from
+## init scripts over dbus.
+##
+##
+## Domain allowed access.
+##
+#
+interface(`init_dbus_chat_script',`
+ gen_require(`
+ type initrc_t;
+ class dbus send_msg;
+ ')
+
+ allow $1 initrc_t:dbus send_msg;
+ allow initrc_t $1:dbus send_msg;
+')
+
+########################################
+##
## Read and write the init script pty.
##
##
diff --git a/refpolicy/policy/modules/system/init.te b/refpolicy/policy/modules/system/init.te
index 28fda4c..72b8312 100644
--- a/refpolicy/policy/modules/system/init.te
+++ b/refpolicy/policy/modules/system/init.te
@@ -1,5 +1,5 @@
-policy_module(init,1.0.2)
+policy_module(init,1.0.3)
gen_require(`
class passwd rootok;
@@ -61,7 +61,11 @@ gen_require(`
domain_type(initrc_t)
role system_r types initrc_t;
-type initrc_exec_t;
+# real declaration moved to mls until
+# range_transition works in loadable modules
+gen_require(`
+ type initrc_exec_t;
+')
domain_entry_file(initrc_t,initrc_exec_t)
type initrc_devpts_t;
@@ -506,10 +510,6 @@ optional_policy(`dbus',`
optional_policy(`networkmanager',`
networkmanager_dbus_chat(initrc_t)
')
-
- optional_policy(`updfstab',`
- updfstab_dbus_chat(initrc_t)
- ')
')
optional_policy(`ftp',`
diff --git a/refpolicy/policy/modules/system/sysnetwork.if b/refpolicy/policy/modules/system/sysnetwork.if
index 386661c..6ecf59d 100644
--- a/refpolicy/policy/modules/system/sysnetwork.if
+++ b/refpolicy/policy/modules/system/sysnetwork.if
@@ -129,6 +129,25 @@ interface(`sysnet_signal_dhcpc',`
########################################
##
+## Send and receive messages from
+## dhcpc over dbus.
+##
+##
+## Domain allowed access.
+##
+#
+interface(`sysnet_dbus_chat_dhcpc',`
+ gen_require(`
+ type dhcpc_t;
+ class dbus send_msg;
+ ')
+
+ allow $1 dhcpc_t:dbus send_msg;
+ allow dhcpc_t $1:dbus send_msg;
+')
+
+########################################
+##
## Read and write dhcp configuration files.
##
##
diff --git a/refpolicy/policy/modules/system/sysnetwork.te b/refpolicy/policy/modules/system/sysnetwork.te
index c1a479f..a68c3c1 100644
--- a/refpolicy/policy/modules/system/sysnetwork.te
+++ b/refpolicy/policy/modules/system/sysnetwork.te
@@ -1,5 +1,5 @@
-policy_module(sysnetwork,1.0.1)
+policy_module(sysnetwork,1.0.2)
########################################
#
@@ -161,21 +161,12 @@ optional_policy(`consoletype',`
')
optional_policy(`dbus',`
- gen_require(`
- class dbus send_msg;
- ')
-
- allow dhcpc_t self:dbus send_msg;
+ init_dbus_chat_script(dhcpc_t)
dbus_system_bus_client_template(dhcpc,dhcpc_t)
dbus_connect_system_bus(dhcpc_t)
dbus_send_system_bus_msg(dhcpc_t)
- domain_auto_trans(system_dbusd_t, dhcpc_exec_t, dhcpc_t)
-
- allow initrc_t dhcpc_t:dbus send_msg;
- allow dhcpc_t initrc_t:dbus send_msg;
-
optional_policy(`networkmanager',`
networkmanager_dbus_chat(dhcpc_t)
')
diff --git a/refpolicy/policy/modules/system/unconfined.if b/refpolicy/policy/modules/system/unconfined.if
index 39b43b7..b6fe603 100644
--- a/refpolicy/policy/modules/system/unconfined.if
+++ b/refpolicy/policy/modules/system/unconfined.if
@@ -203,6 +203,22 @@ interface(`unconfined_signal',`
########################################
##
+## Read unconfined domain unnamed pipes.
+##
+##
+## Domain allowed access.
+##
+#
+interface(`unconfined_read_pipe',`
+ gen_require(`
+ type unconfined_t;
+ ')
+
+ allow $1 unconfined_t:fifo_file r_file_perms;
+')
+
+########################################
+##
## Do not audit attempts to read unconfined domain unnamed pipes.
##
##
@@ -264,6 +280,23 @@ interface(`unconfined_dontaudit_rw_tcp_socket',`
########################################
##
+## Send messages to the unconfined domain over dbus.
+##
+##
+## Domain allowed access.
+##
+#
+interface(`unconfined_dbus_send',`
+ gen_require(`
+ type unconfined_t;
+ class dbus send_msg;
+ ')
+
+ allow $1 unconfined_t:dbus send_msg;
+')
+
+########################################
+##
## Add an alias type to the unconfined domain.
##
##
diff --git a/refpolicy/policy/modules/system/unconfined.te b/refpolicy/policy/modules/system/unconfined.te
index 8160f15..b7d7b6c 100644
--- a/refpolicy/policy/modules/system/unconfined.te
+++ b/refpolicy/policy/modules/system/unconfined.te
@@ -64,6 +64,14 @@ ifdef(`targeted_policy',`
avahi_dbus_chat(unconfined_t)
')
+ optional_policy(`bluetooth',`
+ bluetooth_dbus_chat(unconfined_t)
+ ')
+
+ optional_policy(`cups',`
+ cups_dbus_chat_config(unconfined_t)
+ ')
+
optional_policy(`hal',`
hal_dbus_chat(unconfined_t)
')
diff --git a/refpolicy/policy/modules/system/userdomain.if b/refpolicy/policy/modules/system/userdomain.if
index 56a6796..9167d69 100644
--- a/refpolicy/policy/modules/system/userdomain.if
+++ b/refpolicy/policy/modules/system/userdomain.if
@@ -611,6 +611,14 @@ template(`unpriv_user_template', `
corenet_tcp_bind_generic_port($1_t)
')
+ optional_policy(`dbus',`
+ dbus_stub($1_t)
+
+ optional_policy(`bluetooth',`
+ bluetooth_dbus_chat($1_t)
+ ')
+ ')
+
optional_policy(`kerberos',`
kerberos_use($1_t)
')
diff --git a/refpolicy/policy/modules/system/userdomain.te b/refpolicy/policy/modules/system/userdomain.te
index 3805172..6c228fa 100644
--- a/refpolicy/policy/modules/system/userdomain.te
+++ b/refpolicy/policy/modules/system/userdomain.te
@@ -1,5 +1,9 @@
-policy_module(userdomain,1.0.5)
+policy_module(userdomain,1.0.6)
+
+gen_require(`
+ role sysadm_r, staff_r, user_r;
+')
########################################
#