[selinux-policy: 162/3172] pile of updates

Daniel J Walsh dwalsh at fedoraproject.org
Thu Oct 7 19:19:02 UTC 2010


commit 7bba9d317a69631648c494910641e82b79b33b37
Author: Chris PeBenito <cpebenito at tresys.com>
Date:   Fri May 13 14:37:13 2005 +0000

    pile of updates

 refpolicy/policy/modules/kernel/bootloader.if |   15 ++
 refpolicy/policy/modules/kernel/bootloader.te |  134 ++++++--------
 refpolicy/policy/modules/kernel/devices.if    |  102 ++++++++++-
 refpolicy/policy/modules/kernel/kernel.if     |   14 ++
 refpolicy/policy/modules/kernel/terminal.if   |  244 ++++++++++++++-----------
 refpolicy/policy/modules/services/cron.te     |   63 +++----
 refpolicy/policy/modules/services/mta.fc      |    4 +-
 refpolicy/policy/modules/services/mta.if      |   73 +++++++-
 refpolicy/policy/modules/services/mta.te      |   36 ++++-
 refpolicy/policy/modules/system/authlogin.te  |   13 +-
 refpolicy/policy/modules/system/files.if      |   30 +++
 refpolicy/policy/modules/system/init.if       |   14 ++
 refpolicy/policy/modules/system/init.te       |   13 +-
 refpolicy/policy/modules/system/udev.if       |   14 ++
 14 files changed, 527 insertions(+), 242 deletions(-)
---
diff --git a/refpolicy/policy/modules/kernel/bootloader.if b/refpolicy/policy/modules/kernel/bootloader.if
index 861dc1b..d18eabc 100644
--- a/refpolicy/policy/modules/kernel/bootloader.if
+++ b/refpolicy/policy/modules/kernel/bootloader.if
@@ -158,6 +158,21 @@ class file { getattr read write append };
 
 ########################################
 #
+# bootloader_modify_temporary_data(domain)
+#
+define(`bootloader_modify_temporary_data',`
+requires_block_template(`$0'_depend)
+# FIXME: read tmp_t
+allow $1 bootloader_tmp_t:file { getattr read write };
+')
+
+define(`bootloader_modify_temporary_data_depend',`
+type bootloader_tmp_t;
+class file { getattr read write setattr };
+')
+
+########################################
+#
 # bootloader_create_runtime_data(domain)
 #
 define(`bootloader_create_runtime_data',`
diff --git a/refpolicy/policy/modules/kernel/bootloader.te b/refpolicy/policy/modules/kernel/bootloader.te
index 94ed02d..5decaa8 100644
--- a/refpolicy/policy/modules/kernel/bootloader.te
+++ b/refpolicy/policy/modules/kernel/bootloader.te
@@ -67,6 +67,28 @@ allow bootloader_t self:capability { dac_read_search fsetid sys_rawio sys_admin
 allow bootloader_t self:process { sigkill sigstop signull signal };
 allow bootloader_t self:fifo_file { getattr read write };
 
+allow bootloader_t boot_t:dir { getattr search read write add_name };
+allow bootloader_t boot_t:file { getattr read write create };
+allow bootloader_t boot_t:lnk_file { getattr read create unlink };
+
+allow bootloader_t bootloader_etc_t:file { getattr read };
+# uncomment the following lines if you use "lilo -p"
+#allow bootloader_t bootloader_etc_t:file { create ioctl read getattr lock write setattr append link unlink rename };
+#files_create_private_config(bootloader_t,bootloader_etc_t)
+
+allow bootloader_t bootloader_tmp_t:dir { create read getattr lock setattr ioctl link unlink rename search add_name remove_name reparent write rmdir };
+allow bootloader_t bootloader_tmp_t:file { create ioctl read getattr lock write setattr append link unlink rename };
+allow bootloader_t bootloader_tmp_t:chr_file { create ioctl read getattr lock write setattr append link unlink rename };
+allow bootloader_t bootloader_tmp_t:blk_file { create ioctl read getattr lock write setattr append link unlink rename };
+allow bootloader_t bootloader_tmp_t:lnk_file { create read getattr setattr unlink rename };
+files_create_private_tmp_data(bootloader_t,bootloader_tmp_t,{ dir file lnk_file chr_file blk_file })
+# for tune2fs (cjp: ?)
+files_create_private_root_dir_entry(bootloader_t,bootloader_tmp_t)
+
+allow bootloader_t modules_object_t:dir { getattr search read };
+allow bootloader_t modules_object_t:file { getattr read };
+allow bootloader_t modules_object_t:lnk_file { getattr read };
+
 kernel_get_core_interface_attributes(bootloader_t)
 kernel_read_system_state(bootloader_t)
 kernel_read_software_raid_state(bootloader_t)
@@ -80,9 +102,15 @@ storage_raw_write_removable_device(bootloader_t)
 devices_get_all_character_device_attributes(bootloader_t)
 devices_set_all_block_device_attributes(bootloader_t)
 devices_ignore_modify_generic_devices(bootloader_t)
+devices_get_random_data(bootloader_t)
+devices_get_pseudorandom_data(bootloader_t)
 # for reading BIOS data
 devices_raw_read_memory(bootloader_t)
 
+filesystem_get_persistent_filesystem_attributes(bootloader_t)
+
+terminal_get_all_users_physical_terminal_attributes(bootloader_t)
+
 init_get_control_channel_attributes(bootloader_t)
 init_script_use_pseudoterminal(bootloader_t)
 init_script_use_file_descriptors(bootloader_t)
@@ -96,91 +124,61 @@ libraries_read_library_resources(bootloader_t)
 files_read_general_system_config(bootloader_t)
 files_read_runtime_system_config(bootloader_t)
 files_read_system_source_code(bootloader_t)
-
-logging_send_system_log_message(bootloader_t)
-
-# uncomment the following line if you use "lilo -p"
-#files_create_private_config(bootloader_t,bootloader_etc_t)
-#allow bootloader_t bootloader_etc_t:file { create ioctl read getattr lock write setattr append link unlink rename };
-
-filesystem_get_persistent_filesystem_attributes(bootloader_t)
-
-terminal_get_all_users_physical_terminal_attributes(bootloader_t)
-
-allow bootloader_t bootloader_etc_t:file { getattr read };
-
-optional_policy(`modutils.te',`
-modutils_insmod_execute(insmod_t)
-')
-
-miscfiles_read_localization(bootloader_t)
-
-########################################
-#
-# mkinitrd policy
-#
-
-allow bootloader_t modules_object_t:dir { getattr search read };
-allow bootloader_t modules_object_t:file { getattr read };
-
 files_read_general_application_resources(bootloader_t)
-bootloader_install_initrd(bootloader_t)
-
-devices_get_random_data(bootloader_t)
-devices_get_pseudorandom_data(bootloader_t)
+# for nscd
+files_ignore_search_runtime_data_directory(bootloader_t)
 
 corecommands_execute_general_programs(bootloader_t)
 corecommands_execute_system_programs(bootloader_t)
 corecommands_execute_shell(bootloader_t)
 
-selinux_read_binary_policy(bootloader_t)
-selinux_read_load_policy_binary(bootloader_t)
-
-modutils_read_kernel_module_dependencies(bootloader_t)
-modutils_read_kernel_module_loading_config(bootloader_t)
-modutils_insmod_execute(bootloader_t)
-modutils_depmod_execute(bootloader_t)
-modutils_update_modules_execute(bootloader_t)
-
+logging_send_system_log_message(bootloader_t)
 logging_modify_system_logs(bootloader_t)
 
-files_create_private_tmp_data(bootloader_t,bootloader_tmp_t,{ dir file lnk_file chr_file blk_file })
-allow bootloader_t bootloader_tmp_t:dir { create read getattr lock setattr ioctl link unlink rename search add_name remove_name reparent write rmdir };
-allow bootloader_t bootloader_tmp_t:file { create ioctl read getattr lock write setattr append link unlink rename };
-allow bootloader_t bootloader_tmp_t:chr_file { create ioctl read getattr lock write setattr append link unlink rename };
-allow bootloader_t bootloader_tmp_t:blk_file { create ioctl read getattr lock write setattr append link unlink rename };
-allow bootloader_t bootloader_tmp_t:lnk_file { create read getattr setattr unlink rename };
-# for tune2fs (cjp: ?)
-files_create_private_root_dir_entry(bootloader_t,bootloader_tmp_t)
+miscfiles_read_localization(bootloader_t)
 
-optional_policy(`fsadm.te', `
-filesystemtools_execute(bootloader_t)
-')
+selinux_read_binary_policy(bootloader_t)
+selinux_read_load_policy_binary(bootloader_t)
 
 tunable_policy(`distro_debian', `
 allow bootloader_t bootloader_tmp_t:{ dir file } { relabelfrom relabelto };
 allow bootloader_t modules_object_t:file { relabelfrom relabelto unlink };
 allow bootloader_t boot_t:file relabelfrom;
-') dnl end distro_debian
+')
 
 tunable_policy(`distro_redhat', `
+# for memlock
+allow bootloader_t self:capability ipc_lock;
+# new file system defaults to file_t, granting file_t access is still bad.
+allow bootloader_t boot_runtime_t:file { read getattr unlink };
+# mkinitrd mount initrd on bootloader temp dir
 files_make_mountpoint(bootloader_tmp_t)
-
 # for mke2fs
 mount_transition(bootloader_t)
-allow bootloader_t modules_object_t:lnk_file { getattr read };
+')
 
-# new file system defaults to file_t, granting file_t access is still bad.
-allow bootloader_t self:unix_stream_socket { create ioctl read getattr write setattr append bind getopt setopt shutdown };
-allow bootloader_t boot_runtime_t:file { read getattr unlink };
+optional_policy(`filesystemtools.te', `
+filesystemtools_execute(bootloader_t)
+')
 
-# for memlock
-devices_get_zeros(bootloader_t)
-allow bootloader_t self:capability ipc_lock;
-') dnl end distro_redhat
+# LVM2 / Device Mapper's /dev/mapper/control
+# maybe we should change the labeling for this
+optional_policy(`lvm.te', `
+devices_use_lvm_control_channel(bootloader_t)
+lvm_transition(bootloader_t)
+lvm_read_config(bootloader_t)
+')
 
-ifdef(`TODO',`
+optional_policy(`modutils.te',`
+modutils_insmod_execute(insmod_t)
+modutils_read_kernel_module_dependencies(bootloader_t)
+modutils_read_kernel_module_loading_config(bootloader_t)
+modutils_insmod_execute(bootloader_t)
+modutils_depmod_execute(bootloader_t)
+modutils_update_modules_execute(bootloader_t)
+')
 
+ifdef(`TODO',`
 # admin runs bootloader:
 domain_auto_trans(sysadm_t, bootloader_exec_t, bootloader_t)
 allow bootloader_t admin_tty_type:chr_file rw_file_perms;
@@ -192,15 +190,6 @@ allow bootloader_t sysfs_t:dir getattr;
 allow bootloader_t var_t:dir search;
 allow bootloader_t var_t:file { getattr read };
 
-# LVM2 / Device Mapper's /dev/mapper/control
-# maybe we should change the labeling for this
-optional_policy(`lvm.te', `
-lvm_transition(bootloader_t)
-allow bootloader_t lvm_control_t:chr_file rw_file_perms;
-allow lvm_t bootloader_tmp_t:file rw_file_perms;
-r_dir_file(bootloader_t, lvm_etc_t)
-')
-
 tunable_policy(`distro_debian', `
 allow bootloader_t { usr_t lib_t fsadm_exec_t }:file relabelto;
 allow bootloader_t { usr_t lib_t fsadm_exec_t }:file create_file_perms;
@@ -223,7 +212,4 @@ allow bootloader_t file_t:lnk_file create_lnk_perms;
 dontaudit bootloader_t selinux_config_t:dir search;
 dontaudit bootloader_t { staff_home_dir_t sysadm_home_dir_t }:dir search;
 dontaudit bootloader_t devpts_t:dir create_dir_perms;
-# for nscd
-dontaudit bootloader_t var_run_t:dir search;
-
 ') dnl end TODO
diff --git a/refpolicy/policy/modules/kernel/devices.if b/refpolicy/policy/modules/kernel/devices.if
index 1c4f3e7..4947150 100644
--- a/refpolicy/policy/modules/kernel/devices.if
+++ b/refpolicy/policy/modules/kernel/devices.if
@@ -74,17 +74,63 @@ type device_t;
 class dir { getattr read search };
 ')
 
+
+########################################
+#
+# devices_ignore_get_generic_block_device_attributes(domain)
+#
+define(`devices_ignore_get_generic_block_device_attributes',`
+requires_block_template(`$0'_depend)
+dontaudit $1 device_t:blk_file getattr;
+')
+
+define(`devices_ignore_get_generic_block_device_attributes_depend',`
+type device_t;
+class blk_file getattr;
+')
+
+########################################
+#
+# devices_ignore_get_generic_character_device_attributes(domain)
+#
+define(`devices_ignore_get_generic_character_device_attributes',`
+requires_block_template(`$0'_depend)
+dontaudit $1 device_t:chr_file getattr;
+')
+
+define(`devices_ignore_get_generic_character_device_attributes_depend',`
+type device_t;
+class chr_file getattr;
+')
+
+########################################
+#
+# devices_manage_dev_symbolic_links(domain)
+#
+define(`devices_manage_dev_symbolic_links',`
+requires_block_template(`$0'_depend)
+allow $1 device_t:dir { create read getattr lock setattr ioctl link unlink rename search add_name remove_name reparent write rmdir relabelfrom relabelto };
+allow $1 device_t:lnk_file { create read getattr setattr link unlink rename };
+')
+
+define(`devices_manage_dev_symbolic_links_depend',`
+attribute device_node, memory_raw_read, memory_raw_write;
+type device_t;
+class dir { create read getattr lock setattr ioctl link unlink rename search add_name remove_name reparent write rmdir relabelfrom relabelto };
+class lnk_file { create read getattr setattr link unlink rename };
+')
+
 ########################################
 #
 # devices_manage_device_nodes(domain)
 #
 define(`devices_manage_device_nodes',`
 requires_block_template(`$0'_depend)
-allow udev_t device_t:dir { create read getattr lock setattr ioctl link unlink rename search add_name remove_name reparent write rmdir relabelfrom relabelto };
-allow udev_t device_t:sock_file { create ioctl read getattr lock write setattr append link unlink rename };
-allow udev_t device_t:lnk_file { create read getattr setattr link unlink rename };
-allow udev_t device_t:{ chr_file blk_file } { create ioctl read getattr lock write setattr append link unlink rename relabelfrom relabelto };
-allow udev_t device_node:{ chr_file blk_file } { create ioctl read getattr lock write setattr append link unlink rename relabelfrom relabelto };
+allow $1 device_t:dir { create read getattr lock setattr ioctl link unlink rename search add_name remove_name reparent write rmdir relabelfrom relabelto };
+allow $1 device_t:sock_file { create ioctl read getattr lock write setattr append link unlink rename };
+allow $1 device_t:lnk_file { create read getattr setattr link unlink rename };
+allow $1 device_t:{ chr_file blk_file } { create ioctl read getattr lock write setattr append link unlink rename relabelfrom relabelto };
+allow $1 device_node:{ chr_file blk_file } { create ioctl read getattr lock write setattr append link unlink rename relabelfrom relabelto };
 # these next rules are to satisfy assertions broken by the above lines.
 # the permissions hopefully can be cut back a lot
 storage_raw_read_fixed_disk($1)
@@ -141,12 +187,28 @@ class dir { getattr search read write add_name remove_name };
 #
 define(`devices_get_all_block_device_attributes',`
 requires_block_template(`$0'_depend)
+allow $1 device_t:dir { getattr read search };
 allow $1 device_node:blk_file getattr;
 ')
 
 define(`devices_get_all_block_device_attributes_depend',`
 attribute device_node;
 class blk_file getattr;
+class dir { getattr read search };
+')
+
+########################################
+#
+# devices_ignore_get_all_block_device_attributes(domain)
+#
+define(`devices_ignore_get_all_block_device_attributes',`
+requires_block_template(`$0'_depend)
+allow $1 device_node:blk_file getattr;
+')
+
+define(`devices_ignore_get_all_block_device_attributes_depend',`
+attribute device_node;
+class blk_file getattr;
 ')
 
 ########################################
@@ -155,12 +217,28 @@ class blk_file getattr;
 #
 define(`devices_get_all_character_device_attributes',`
 requires_block_template(`$0'_depend)
+allow $1 device_t:dir { getattr read search };
 allow $1 device_node:chr_file getattr;
 ')
 
 define(`devices_get_all_character_device_attributes_depend',`
 attribute device_node;
 class chr_file getattr;
+class dir { getattr read search };
+')
+
+########################################
+#
+# devices_ignore_get_all_character_device_attributes(domain)
+#
+define(`devices_ignore_get_all_character_device_attributes',`
+requires_block_template(`$0'_depend)
+dontaudit $1 device_node:chr_file getattr;
+')
+
+define(`devices_ignore_get_all_character_device_attributes_depend',`
+attribute device_node;
+class chr_file getattr;
 ')
 
 ########################################
@@ -579,6 +657,20 @@ class chr_file { getattr write ioctl };
 
 ########################################
 #
+# devices_use_lvm_control_channel(domain)
+#
+define(`devices_use_lvm_control_channel',`
+requires_block_template(`$0'_depend)
+allow $1 lvm_control_t:chr_file { ioctl read getattr lock write append };
+')
+
+define(`devices_use_lvm_control_channel_depend',`
+type lvm_control_t;
+class chr_file { ioctl read getattr lock write append };
+')
+
+########################################
+#
 # devices_read_misc(domain)
 #
 define(`devices_read_misc',`
diff --git a/refpolicy/policy/modules/kernel/kernel.if b/refpolicy/policy/modules/kernel/kernel.if
index 79cd778..3bea5c3 100644
--- a/refpolicy/policy/modules/kernel/kernel.if
+++ b/refpolicy/policy/modules/kernel/kernel.if
@@ -478,6 +478,20 @@ class file getattr;
 
 ########################################
 #
+# kernel_ignore_get_core_interface_attributes(domain)
+#
+define(`kernel_ignore_get_core_interface_attributes',`
+requires_block_template(`$0'_depend)
+dontaudit $1 proc_kcore_t:file getattr;
+')
+
+define(`kernel_ignore_get_core_interface_attributes_depend',`
+type proc_kcore_t;
+class file getattr;
+')
+
+########################################
+#
 # kernel_read_messages(domain)
 #
 define(`kernel_read_messages',`
diff --git a/refpolicy/policy/modules/kernel/terminal.if b/refpolicy/policy/modules/kernel/terminal.if
index fe95e5d..0db677b 100644
--- a/refpolicy/policy/modules/kernel/terminal.if
+++ b/refpolicy/policy/modules/kernel/terminal.if
@@ -45,173 +45,218 @@ class chr_file { read write };
 
 ########################################
 #
-# terminal_get_all_users_physical_terminal_attributes(domain)
+# terminal_use_console(domain)
 #
-define(`terminal_get_all_users_physical_terminal_attributes',`
+define(`terminal_use_console',`
 requires_block_template(`$0'_depend)
-devices_list_device_nodes($1)
-allow $1 ttynode:chr_file getattr;
+devices_list_device_nodes($1,optional)
+allow $1 console_device_t:chr_file { read write };
 ')
 
-define(`terminal_get_all_users_physical_terminal_attributes_depend',`
-attribute ttynode;
-class chr_file getattr;
+define(`terminal_use_console_depend',`
+type console_device_t;
+class chr_file { read write };
+devices_list_device_nodes_depend
 ')
 
 ########################################
 #
-# terminal_use_all_users_physical_terminals(domain)
+# terminal_ignore_use_console(domain)
 #
-define(`terminal_use_all_users_physical_terminals',`
+define(`terminal_ignore_use_console',`
 requires_block_template(`$0'_depend)
-devices_list_device_nodes($1)
-allow $1 ttynode:chr_file { read write };
+dontaudit $1 console_device_t:chr_file { read write };
 ')
 
-define(`terminal_use_all_users_physical_terminals_depend',`
-attribute ttynode;
+define(`terminal_ignore_use_console_depend',`
+type console_device_t;
 class chr_file { read write };
 ')
 
 ########################################
 #
-# terminal_ignore_use_all_users_physical_terminals(domain)
+# terminal_set_console_attributes(domain)
 #
-define(`terminal_ignore_use_all_users_physical_terminals',`
+define(`terminal_set_console_attributes',`
 requires_block_template(`$0'_depend)
-dontaudit $1 ttynode:chr_file { read write };
+devices_list_device_nodes($1,optional)
+allow $1 console_device_t:chr_file setattr;
 ')
 
-define(`terminal_ignore_use_all_users_physical_terminals_depend',`
-attribute ttynode;
-class chr_file { read write };
+define(`terminal_set_console_attributes_depend',`
+type console_device_t;
+class chr_file setattr;
+devices_list_device_nodes_depend
 ')
 
 ########################################
 #
-# terminal_get_all_users_pseudoterminal_attributes(domain)
+# terminal_list_pseudoterminals(domain)
 #
-define(`terminal_get_all_users_pseudoterminal_attributes',`
+define(`terminal_list_pseudoterminals',`
 requires_block_template(`$0'_depend)
-devices_list_device_nodes($1)
+devices_list_device_nodes($1,optional)
 allow $1 devpts_t:dir { getattr search read };
-allow $1 ptynode:chr_file getattr;
 ')
 
-define(`terminal_get_all_users_pseudoterminal_attributes_depend',`
-attribute ptynode;
+define(`terminal_list_pseudoterminals_depend',`
+type devpts_t;
 class dir { getattr search read };
-class chr_file getattr;
+devices_list_device_nodes_depend
 ')
 
 ########################################
 #
-# terminal_use_all_users_pseudoterminals(domain)
+# terminal_ignore_list_pseudoterminals(domain)
 #
-define(`terminal_use_all_users_pseudoterminals',`
+define(`terminal_ignore_list_pseudoterminals',`
 requires_block_template(`$0'_depend)
-devices_list_device_nodes($1)
-allow $1 devpts_t:dir { getattr read search };
-allow $1 ptynode:chr_file { read write };
+dontaudit $1 devpts_t:dir { getattr search read };
 ')
 
-define(`terminal_use_all_users_pseudoterminals_depend',`
-attribute ptynode;
+define(`terminal_ignore_list_pseudoterminals_depend',`
+type devpts_t;
 class dir { getattr search read };
-class chr_file { read write };
 ')
 
 ########################################
 #
-# terminal_ignore_use_all_users_pseudoterminals(domain)
+# terminal_use_general_pseudoterminal(domain)
 #
-define(`terminal_ignore_use_all_users_pseudoterminals',`
+define(`terminal_use_general_pseudoterminal',`
 requires_block_template(`$0'_depend)
-dontaudit $1 ptynode:chr_file { read write };
+devices_list_device_nodes($1)
+allow $1 devpts_t:chr_file { read write };
 ')
 
-define(`terminal_ignore_use_all_users_pseudoterminals_depend',`
-attribute ptynode;
+define(`terminal_use_general_pseudoterminal_depend',`
+type devpts_t;
 class chr_file { read write };
 ')
 
 ########################################
 #
-# terminal_use_console(domain)
+# terminal_ignore_use_general_pseudoterminal(domain)
 #
-define(`terminal_use_console',`
+define(`terminal_ignore_use_general_pseudoterminal',`
 requires_block_template(`$0'_depend)
-devices_list_device_nodes($1,optional)
-allow $1 console_device_t:chr_file { read write };
+dontaudit $1 devpts_t:chr_file { read write };
 ')
 
-define(`terminal_use_console_depend',`
-type console_device_t;
+define(`terminal_ignore_use_general_pseudoterminal_depend',`
+type devpts_t;
 class chr_file { read write };
-devices_list_device_nodes_depend
 ')
 
 ########################################
 #
-# terminal_ignore_use_console(domain)
+# terminal_use_controlling_terminal(domain)
 #
-define(`terminal_ignore_use_console',`
+define(`terminal_use_controlling_terminal',`
 requires_block_template(`$0'_depend)
-dontaudit $1 console_device_t:chr_file { read write };
+devices_list_device_nodes($1)
+allow $1 devtty_t:chr_file { read write };
 ')
 
-define(`terminal_ignore_use_console_depend',`
-type console_device_t;
+define(`terminal_use_controlling_terminal_depend',`
+type devtty_t;
 class chr_file { read write };
 ')
 
 ########################################
 #
-# terminal_set_console_attributes(domain)
+# terminal_ignore_use_pseudoterminal_multiplexer(domain)
 #
-define(`terminal_set_console_attributes',`
+define(`terminal_ignore_use_pseudoterminal_multiplexer',`
 requires_block_template(`$0'_depend)
-devices_list_device_nodes($1,optional)
-allow $1 console_device_t:chr_file setattr;
+dontaudit $1 ptmx_t:chr_file { getattr read write };
 ')
 
-define(`terminal_set_console_attributes_depend',`
-type console_device_t;
-class chr_file setattr;
-devices_list_device_nodes_depend
+define(`terminal_ignore_use_pseudoterminal_multiplexer_depend',`
+type ptmx_t;
+class chr_file { getattr read write };
 ')
 
 ########################################
 #
-# terminal_use_controlling_terminal(domain)
+# terminal_get_all_users_pseudoterminal_attributes(domain)
 #
-define(`terminal_use_controlling_terminal',`
+define(`terminal_get_all_users_pseudoterminal_attributes',`
 requires_block_template(`$0'_depend)
 devices_list_device_nodes($1)
-allow $1 devtty_t:chr_file { read write };
+allow $1 devpts_t:dir { getattr search read };
+allow $1 ptynode:chr_file getattr;
 ')
 
-define(`terminal_use_controlling_terminal_depend',`
-type devtty_t;
+define(`terminal_get_all_users_pseudoterminal_attributes_depend',`
+attribute ptynode;
+class dir { getattr search read };
+class chr_file getattr;
+')
+
+########################################
+#
+# terminal_use_all_users_pseudoterminals(domain)
+#
+define(`terminal_use_all_users_pseudoterminals',`
+requires_block_template(`$0'_depend)
+devices_list_device_nodes($1)
+allow $1 devpts_t:dir { getattr read search };
+allow $1 ptynode:chr_file { read write };
+')
+
+define(`terminal_use_all_users_pseudoterminals_depend',`
+attribute ptynode;
+class dir { getattr search read };
 class chr_file { read write };
 ')
 
 ########################################
 #
-# terminal_ignore_use_controlling_terminal(domain)
+# terminal_ignore_use_all_users_pseudoterminals(domain)
 #
-define(`terminal_ignore_use_controlling_terminal',`
+define(`terminal_ignore_use_all_users_pseudoterminals',`
 requires_block_template(`$0'_depend)
-dontaudit $1 devtty_t:chr_file { read write };
+dontaudit $1 ptynode:chr_file { read write };
 ')
 
-define(`terminal_ignore_use_controlling_terminal_depend',`
-type devtty_t;
+define(`terminal_ignore_use_all_users_pseudoterminals_depend',`
+attribute ptynode;
 class chr_file { read write };
 ')
 
 ########################################
 #
+# terminal_get_general_physical_terminal_attributes(domain)
+#
+define(`terminal_get_general_physical_terminal_attributes',`
+requires_block_template(`$0'_depend)
+devices_list_device_nodes($1)
+allow $1 tty_device_t:chr_file getattr;
+')
+
+define(`terminal_get_general_physical_terminal_attributes_depend',`
+type tty_device_t;
+class chr_file getattr;
+')
+
+########################################
+#
+# terminal_set_general_physical_terminal_attributes(domain)
+#
+define(`terminal_set_general_physical_terminal_attributes',`
+requires_block_template(`$0'_depend)
+devices_list_device_nodes($1)
+allow $1 tty_device_t:chr_file setattr;
+')
+
+define(`terminal_set_general_physical_terminal_attributes_depend',`
+type tty_device_t;
+class chr_file setattr;
+')
+
+########################################
+#
 # terminal_reset_physical_terminal_labels(domain)
 #
 define(`terminal_reset_physical_terminal_labels',`
@@ -259,73 +304,58 @@ class chr_file { read write };
 
 ########################################
 #
-# terminal_list_pseudoterminals(domain)
+# terminal_get_all_users_physical_terminal_attributes(domain)
 #
-define(`terminal_list_pseudoterminals',`
+define(`terminal_get_all_users_physical_terminal_attributes',`
 requires_block_template(`$0'_depend)
-devices_list_device_nodes($1,optional)
-allow $1 devpts_t:dir { getattr search read };
+devices_list_device_nodes($1)
+allow $1 ttynode:chr_file getattr;
 ')
 
-define(`terminal_list_pseudoterminals_depend',`
-type devpts_t;
-class dir { getattr search read };
-devices_list_device_nodes_depend
+define(`terminal_get_all_users_physical_terminal_attributes_depend',`
+attribute ttynode;
+class chr_file getattr;
 ')
 
 ########################################
 #
-# terminal_ignore_list_pseudoterminals(domain)
+# terminal_ignore_get_all_users_physical_terminal_attributes(domain)
 #
-define(`terminal_ignore_list_pseudoterminals',`
+define(`terminal_ignore_get_all_users_physical_terminal_attributes',`
 requires_block_template(`$0'_depend)
-dontaudit $1 devpts_t:dir { getattr search read };
+dontaudit $1 ttynode:chr_file getattr;
 ')
 
-define(`terminal_ignore_list_pseudoterminals_depend',`
-type devpts_t;
-class dir { getattr search read };
+define(`terminal_ignore_get_all_users_physical_terminal_attributes_depend',`
+attribute ttynode;
+class chr_file getattr;
 ')
 
 ########################################
 #
-# terminal_use_general_pseudoterminal(domain)
+# terminal_use_all_users_physical_terminals(domain)
 #
-define(`terminal_use_general_pseudoterminal',`
+define(`terminal_use_all_users_physical_terminals',`
 requires_block_template(`$0'_depend)
 devices_list_device_nodes($1)
-allow $1 devpts_t:chr_file { read write };
+allow $1 ttynode:chr_file { read write };
 ')
 
-define(`terminal_use_general_pseudoterminal_depend',`
-type devpts_t;
+define(`terminal_use_all_users_physical_terminals_depend',`
+attribute ttynode;
 class chr_file { read write };
 ')
 
 ########################################
 #
-# terminal_ignore_use_general_pseudoterminal(domain)
+# terminal_ignore_use_all_users_physical_terminals(domain)
 #
-define(`terminal_ignore_use_general_pseudoterminal',`
+define(`terminal_ignore_use_all_users_physical_terminals',`
 requires_block_template(`$0'_depend)
-dontaudit $1 devpts_t:chr_file { read write };
+dontaudit $1 ttynode:chr_file { read write };
 ')
 
-define(`terminal_ignore_use_general_pseudoterminal_depend',`
-type devpts_t;
+define(`terminal_ignore_use_all_users_physical_terminals_depend',`
+attribute ttynode;
 class chr_file { read write };
 ')
-
-########################################
-#
-# terminal_ignore_use_pseudoterminal_multiplexer(domain)
-#
-define(`terminal_ignore_use_pseudoterminal_multiplexer',`
-requires_block_template(`$0'_depend)
-dontaudit $1 ptmx_t:chr_file { getattr read write };
-')
-
-define(`terminal_ignore_use_pseudoterminal_multiplexer_depend',`
-type ptmx_t;
-class chr_file { getattr read write };
-')
diff --git a/refpolicy/policy/modules/services/cron.te b/refpolicy/policy/modules/services/cron.te
index 7ea1ed8..bca41c4 100644
--- a/refpolicy/policy/modules/services/cron.te
+++ b/refpolicy/policy/modules/services/cron.te
@@ -74,6 +74,8 @@ allow crond_t crond_tmp_t:dir { create read getattr lock setattr ioctl link unli
 allow crond_t crond_tmp_t:file { create ioctl read getattr lock write setattr append link unlink rename };
 files_create_private_tmp_data(crond_t, crond_tmp_t, { file dir })
 
+allow crond_t cron_spool_t:dir { getattr search read };
+allow crond_t cron_spool_t:file { getattr read };
 allow crond_t system_cron_spool_t:dir { getattr search read };
 allow crond_t system_cron_spool_t:file { getattr read };
 
@@ -152,16 +154,18 @@ allow crond_t autofs_t:dir { search getattr };
 # Read from /var/spool/cron.
 allow crond_t var_lib_t:dir search;
 allow crond_t var_spool_t:dir r_dir_perms;
-allow crond_t cron_spool_t:dir r_dir_perms;
-allow crond_t cron_spool_t:file r_file_perms;
+allow crond_t var_spool_t:file { getattr read };
+allow crond_t mail_spool_t:dir search;
 
 allow crond_t default_t:dir search;
 
 # crond tries to search /root.  Not sure why.
 allow crond_t sysadm_home_dir_t:dir r_dir_perms;
 
+# for if /var/mail is a symlink
+allow crond_t mail_spool_t:lnk_file read;
+
 # to search /home
-allow crond_t home_root_t:dir { getattr search };
 allow crond_t user_home_dir_type:dir r_dir_perms;
 
 ifdef(`distro_redhat', `
@@ -174,10 +178,6 @@ system_crond_entry(rpm_exec_t, rpm_t)
 allow system_crond_t rpm_log_t:file create_file_perms;
 ')
 ')
-
-allow crond_t var_spool_t:file { getattr read };
-
-
 ') dnl endif TODO
 
 ########################################
@@ -301,44 +301,36 @@ selinux_read_file_contexts(system_crond_t)
 
 ifdef(`TODO',`
 
-ifdef(`mta.te', `
-domain_auto_trans(system_crond_t, sendmail_exec_t, system_mail_t)
-allow system_crond_t sendmail_exec_t:lnk_file { getattr read };
-
-# system_mail_t should only be reading from the cron fifo not needing to write
-dontaudit system_mail_t crond_t:fifo_file write;
-allow mta_user_agent system_crond_t:fd use;
-allow mta_user_agent system_crond_t:fd use;
-r_dir_file(system_mail_t, crond_tmp_t)
-')
-
 can_ypbind(system_crond_t)
-allow system_crond_t var_spool_t:dir search;
 
-allow system_crond_t var_t:dir r_dir_perms;
-allow system_crond_t var_t:file { getattr read ioctl };
+dontaudit userdomain system_crond_t:fd use;
 
 # quiet other ps operations
 dontaudit system_crond_t domain:dir { getattr search };
 
+# Do not audit attempts to search unlabeled directories (e.g. slocate).
+dontaudit system_crond_t unlabeled_t:dir r_dir_perms;
+dontaudit system_crond_t unlabeled_t:file r_file_perms;
+
 allow system_crond_t { sysfs_t rpc_pipefs_t }:dir getattr;
 
+# prelink tells init to restart it self, we either need to allow or dontaudit
+allow system_crond_t initctl_t:fifo_file write;
+
+allow system_crond_t var_t:dir r_dir_perms;
+allow system_crond_t var_t:file { getattr read ioctl };
+
 # Write to /var/lib/slocate.db.
 allow system_crond_t var_lib_t:dir rw_dir_perms;
 allow system_crond_t var_lib_t:file create_file_perms;
 
-# for if /var/mail is a symlink
-allow { system_crond_t crond_t } mail_spool_t:lnk_file read;
-allow crond_t mail_spool_t:dir search;
-
 # Access other spool directories like
 # /var/spool/anacron and /var/spool/slrnpull.
 allow system_crond_t var_spool_t:file create_file_perms;
 allow system_crond_t var_spool_t:dir rw_dir_perms;
+# for if /var/mail is a symlink
+allow system_crond_t mail_spool_t:lnk_file read;
 
-# Do not audit attempts to search unlabeled directories (e.g. slocate).
-dontaudit system_crond_t unlabeled_t:dir r_dir_perms;
-dontaudit system_crond_t unlabeled_t:file r_file_perms;
 
 #
 #  These rules are here to allow system cron jobs to su
@@ -350,11 +342,6 @@ allow system_crond_su_t crond_t:fifo_file ioctl;
 ')
 
 #
-# prelink tells init to restart it self, we either need to allow or dontaudit
-#
-allow system_crond_t initctl_t:fifo_file write;
-dontaudit userdomain system_crond_t:fd use;
-#
 # Required for webalizer
 #
 ifdef(`apache.te', `
@@ -367,4 +354,14 @@ allow system_crond_t rpm_log_t:file create_file_perms;
 ')
 ')
 
+ifdef(`mta.te', `
+mta_send_mail_transition(system_crond_t)
+
+# system_mail_t should only be reading from the cron fifo not needing to write
+dontaudit system_mail_t crond_t:fifo_file write;
+allow mta_user_agent system_crond_t:fd use;
+allow mta_user_agent system_crond_t:fd use;
+r_dir_file(system_mail_t, crond_tmp_t)
+')
+
 ') dnl end TODO
diff --git a/refpolicy/policy/modules/services/mta.fc b/refpolicy/policy/modules/services/mta.fc
index c04ef76..cd0b54c 100644
--- a/refpolicy/policy/modules/services/mta.fc
+++ b/refpolicy/policy/modules/services/mta.fc
@@ -4,9 +4,9 @@
 /etc/aliases\.db		--	system_u:object_r:etc_aliases_t
 
 ifdef(`sendmail.te',`',`
-/usr/lib(64)?/sendmail		--	system_u:object_r:mta_exec_t
+/usr/lib(64)?/sendmail		--	system_u:object_r:sendmail_exec_t
 
-/usr/sbin/sendmail(.sendmail)?	--	system_u:object_r:mta_exec_t
+/usr/sbin/sendmail(.sendmail)?	--	system_u:object_r:sendmail_exec_t
 ')
 
 /var/mail(/.*)?				system_u:object_r:mail_spool_t
diff --git a/refpolicy/policy/modules/services/mta.if b/refpolicy/policy/modules/services/mta.if
index 670408b..7cdb652 100644
--- a/refpolicy/policy/modules/services/mta.if
+++ b/refpolicy/policy/modules/services/mta.if
@@ -140,31 +140,46 @@ define(`mta_per_userdomain_template_depend',`
 #
 # mta_make_mailserver_domain(domain,entrypointtype)
 #
-define(`mta_execute',`
+define(`mta_make_mailserver_domain',`
 requires_block_template(`$0'_depend)
 domain_make_daemon_domain($1,$2)
 typeattribute $1 mailserver_domain;
 ')
 
-define(`mta_execute_depend',`
+define(`mta_make_mailserver_domain_depend',`
 attribute mailserver_domain;
 ')
 
 #######################################
 #
-# mta_transition(domain)
+# mta_make_sendmail_mailserver_domain(domain,entrypointtype)
+#
+define(`mta_make_sendmail_mailserver_domain',`
+requires_block_template(`$0'_depend)
+mta_make_mailserver_domain($1,sendmail_exec_t)
+')
+
+define(`mta_make_sendmail_mailserver_domain_depend',`
+type sendmail_exec_t;
+')
+
+#######################################
+#
+# mta_send_mail_transition(domain)
 #
-define(`mta_transition',`
+define(`mta_send_mail_transition',`
 requires_block_template(`$0'_depend)
+allow $1 sendmail_exec_t:lnk_file { getattr read };
 allow $1 sendmail_exec_t:file { getattr read execute };
 allow $1 system_mail_t:process transition;
-type_transition $1 sendmail_exec_t:file hwmta_t;
+type_transition $1 sendmail_exec_t:file system_mail_t;
 dontaudit $1 system_mail_t:process { noatsecure siginh rlimitinh };
 ')
 
-define(`mta_transition_depend',`
+define(`mta_send_mail_transition_depend',`
 type system_mail_t, sendmail_exec_t;
 class file { getattr read execute };
+class lnk_file { getattr read };
 class process { transition noatsecure siginh rlimitinh };
 ')
 
@@ -181,3 +196,49 @@ define(`mta_execute_depend',`
 type sendmail_exec_t;
 class file { getattr read execute execute_no_trans };
 ')
+
+#######################################
+#
+# mta_modify_mail_aliases(domain)
+#
+define(`mta_modify_mail_aliases',`
+requires_block_template(`$0'_depend)
+allow sendmail_t etc_aliases_t:file { getattr read write append setattr };
+')
+
+define(`mta_modify_mail_aliases_depend',`
+type etc_aliases_t;
+class file { getattr read write append setattr };
+')
+
+#######################################
+#
+# mta_manage_mail_spool(domain)
+#
+define(`mta_manage_mail_spool',`
+requires_block_template(`$0'_depend)
+allow $1 mail_spool_t:dir { read getattr lock search ioctl add_name remove_name write };
+allow $1 mail_spool_t:file { create ioctl read getattr lock write setattr append link unlink rename };
+')
+
+define(`mta_manage_mail_spool_depend',`
+type mail_spool_t;
+class dir { read getattr lock search ioctl add_name remove_name write };
+class file { create ioctl read getattr lock write setattr append link unlink rename };
+')
+
+#######################################
+#
+# mta_manage_mail_queue(domain)
+#
+define(`mta_manage_mail_queue',`
+requires_block_template(`$0'_depend)
+allow $1 mqueue_spool_t:dir { read getattr lock search ioctl add_name remove_name write };
+allow $1 mqueue_spool_t:file { create ioctl read getattr lock write setattr append link unlink rename };
+')
+
+define(`mta_manage_mail_queue_depend',`
+type mqueue_spool_t;
+class dir { read getattr lock search ioctl add_name remove_name write };
+class file { create ioctl read getattr lock write setattr append link unlink rename }
+')
diff --git a/refpolicy/policy/modules/services/mta.te b/refpolicy/policy/modules/services/mta.te
index ac6b391..843edfb 100644
--- a/refpolicy/policy/modules/services/mta.te
+++ b/refpolicy/policy/modules/services/mta.te
@@ -13,6 +13,8 @@ files_make_file(etc_aliases_t)
 type etc_mail_t;
 files_make_file(etc_mail_t)
 
+attribute mailserver_domain;
+
 type mqueue_spool_t;
 files_make_file(mqueue_spool_t)
 
@@ -26,6 +28,14 @@ type system_mail_t; #, user_mail_domain, nscd_client_domain;
 domain_make_domain(system_mail_t)
 role system_r types system_mail_t;
 
+tunable_policy(`targeted_policy',`',`
+optional_policy(`sendmail.te', `
+domain_make_entrypoint_file(system_mail_t,sendmail_exec_t)
+', `
+domain_make_system_domain(system_mail_t,sendmail_exec_t)
+') dnl end if sendmail
+') dnl end targeted_policy
+
 ########################################
 #
 # System mail local policy
@@ -87,6 +97,26 @@ procmail_execute(system_mail_t)
 
 ifdef(`TODO',`
 
+optional_policy(`sendmail.te',`
+allow system_mail_t etc_mail_t:dir { getattr search };
+allow system_mail_t etc_runtime_t:file { getattr read };
+allow system_mail_t proc_t:dir search;
+allow system_mail_t proc_t:file { getattr read };
+allow system_mail_t proc_t:lnk_file read;
+dontaudit system_mail_t proc_net_t:dir search;
+allow system_mail_t fs_t:filesystem getattr;
+allow system_mail_t var_t:dir getattr;
+allow system_mail_t var_spool_t:dir getattr;
+dontaudit system_mail_t userpty_type:chr_file { getattr read write };
+
+# sendmail -q 
+allow system_mail_t mqueue_spool_t:dir rw_dir_perms;
+allow system_mail_t mqueue_spool_t:file create_file_perms;
+
+ifdef(`crond.te', `
+dontaudit system_mail_t system_crond_tmp_t:file append;
+')
+') dnl end if sendmail
 
 
 can_ypbind(system_mail_t)
@@ -138,13 +168,11 @@ allow system_mail_t mail_spool_t:lnk_file { create read getattr setattr link unl
 allow system_mail_t mail_spool_t:fifo_file rw_file_perms;
 allow system_mail_t etc_mail_t:file { getattr read };
 ', ` dnl if not targeted policy:
-ifdef(`sendmail.te', `
+optional_policy(`sendmail.te', `
 # sendmail has an ugly design, the one process parses input from the user and
 # then does system things with it.
 domain_auto_trans(initrc_t, sendmail_exec_t, sendmail_t)
-', `
-domain_auto_trans(initrc_t, sendmail_exec_t, system_mail_t)
-') dnl end if sendmail.te
+')
 
 # allow the sysadmin to do "mail someone < /home/user/whatever"
 allow sysadm_mail_t user_home_dir_type:dir search;
diff --git a/refpolicy/policy/modules/system/authlogin.te b/refpolicy/policy/modules/system/authlogin.te
index 3df7fdb..c52265f 100644
--- a/refpolicy/policy/modules/system/authlogin.te
+++ b/refpolicy/policy/modules/system/authlogin.te
@@ -6,6 +6,11 @@ policy_module(authlogin,1.0)
 #
 # Declarations
 #
+
+attribute can_read_shadow_passwords;
+attribute can_write_shadow_passwords;
+attribute can_relabelto_shadow_passwords;
+
 type chkpwd_exec_t;
 files_make_file(chkpwd_exec_t)
 
@@ -43,9 +48,6 @@ files_make_daemon_runtime_file(pam_var_run_t)
 
 type shadow_t;
 files_make_file(shadow_t)
-attribute can_read_shadow_passwords;
-attribute can_write_shadow_passwords;
-attribute can_relabelto_shadow_passwords;
 neverallow ~can_read_shadow_passwords shadow_t:file read;
 neverallow ~can_write_shadow_passwords shadow_t:file { create write };
 neverallow ~can_relabelto_shadow_passwords shadow_t:file relabelto;
@@ -148,6 +150,8 @@ storage_get_removable_device_attributes(pam_console_t)
 storage_set_removable_device_attributes(pam_console_t)
 
 terminal_use_console(pam_console_t)
+terminal_get_general_physical_terminal_attributes(pam_console_t)
+terminal_set_general_physical_terminal_attributes(pam_console_t)
 
 init_use_file_descriptors(pam_console_t)
 init_use_file_descriptors(pam_console_t)
@@ -203,7 +207,6 @@ v4l_device_t
 apm_bios_t
 sound_device_t
 misc_device_t
-tty_device_t
 scanner_device_t
 mouse_device_t
 power_device_t
@@ -211,6 +214,8 @@ removable_device_t
 scsi_generic_device_t
 }:chr_file { getattr setattr };
 
+
+
 allow pam_console_t mnt_t:dir r_dir_perms;
 
 ifdef(`gpm.te', `
diff --git a/refpolicy/policy/modules/system/files.if b/refpolicy/policy/modules/system/files.if
index b383381..7746e35 100644
--- a/refpolicy/policy/modules/system/files.if
+++ b/refpolicy/policy/modules/system/files.if
@@ -769,3 +769,33 @@ class file { getattr unlink };
 class lnk_file { getattr unlink };
 class sock_file { getattr unlink };
 ')
+
+########################################
+#
+# files_search_system_spool_directory(domain)
+#
+define(`files_search_system_spool_directory',`
+requires_block_template(`$0'_depend)
+allow $1 var_t:dir search;
+allow $1 var_spool_t:dir search;
+')
+
+define(`files_search_system_spool_directory_depend',`
+type var_t, var_spool_t;
+class dir search;
+')
+
+########################################
+#
+# files_read_system_spool_directory(domain)
+#
+define(`files_read_system_spool_directory',`
+requires_block_template(`$0'_depend)
+allow $1 var_t:dir search;
+allow $1 var_spool_t:dir { getattr search read };
+')
+
+define(`files_read_system_spool_directory_depend',`
+type var_t, var_spool_t;
+class dir { getattr search read };
+')
diff --git a/refpolicy/policy/modules/system/init.if b/refpolicy/policy/modules/system/init.if
index 2d8337d..23b3877 100644
--- a/refpolicy/policy/modules/system/init.if
+++ b/refpolicy/policy/modules/system/init.if
@@ -228,6 +228,20 @@ class file { getattr read lock };
 
 ########################################
 #
+# init_script_ignore_write_runtime_data(domain)
+#
+define(`init_script_ignore_write_runtime_data',`
+requires_block_template(`$0'_depend)
+dontaudit $1 initrc_var_run_t:file { write lock };
+')
+
+define(`init_script_ignore_write_runtime_data_depend',`
+type initrc_var_run_t;
+class file { write lock };
+')
+
+########################################
+#
 # init_script_modify_runtime_data(domain)
 #
 define(`init_script_modify_runtime_data',`
diff --git a/refpolicy/policy/modules/system/init.te b/refpolicy/policy/modules/system/init.te
index 25e7f9e..396fe27 100644
--- a/refpolicy/policy/modules/system/init.te
+++ b/refpolicy/policy/modules/system/init.te
@@ -274,10 +274,7 @@ logging_modify_system_logs(initrc_t)
 logging_read_all_logs(initrc_t)
 logging_append_all_logs(initrc_t)
 
-optional_policy(`authlogin.te',`
-authlogin_pam_read_runtime_data(initrc_t)
-authlogin_pam_remove_runtime_data(initrc_t)
-')
+udev_modify_database(initrc_t)
 
 tunable_policy(`distro_redhat',`
 kernel_set_selinux_enforcement_mode(initrc_t)
@@ -289,6 +286,11 @@ files_create_boot_flag(initrc_t)
 bootloader_create_runtime_data(initrc_t)
 ') dnl end distro_redhat
 
+optional_policy(`authlogin.te',`
+authlogin_pam_read_runtime_data(initrc_t)
+authlogin_pam_remove_runtime_data(initrc_t)
+')
+
 ifdef(`TODO',`
 # Mount and unmount file systems.
 allow initrc_t { file_t default_t }:dir { read search getattr mounton };
@@ -307,8 +309,6 @@ allow initrc_t admin_tty_type:chr_file rw_file_perms;
 allow initrc_t { home_root_t home_type }:dir r_dir_perms;
 allow initrc_t home_type:file r_file_perms;
 
-allow initrc_t udev_runtime_t:file rw_file_perms;
-
 # for lsof in shutdown scripts
 can_kerberos(initrc_t)
 dontaudit initrc_t krb5_conf_t:file write;
@@ -364,7 +364,6 @@ dontaudit initrc_t mail_spool_t:lnk_file read;
 
 # for lsof which is used by alsa shutdown
 dontaudit initrc_t domain:{ udp_socket tcp_socket fifo_file unix_dgram_socket } getattr;
-kernel_ignore_get_message_interface_attributes(initrc_t)
 ') dnl end TODO
 
 #################################
diff --git a/refpolicy/policy/modules/system/udev.if b/refpolicy/policy/modules/system/udev.if
index 11ceecb..1b39309 100644
--- a/refpolicy/policy/modules/system/udev.if
+++ b/refpolicy/policy/modules/system/udev.if
@@ -31,3 +31,17 @@ define(`udev_read_database_depend',`
 type udev_tdb_t;
 class file { getattr read };
 ')
+
+########################################
+#
+# udev_modify_database(domain)
+#
+define(`udev_modify_database',`
+requires_block_template(`$0'_depend)
+allow $1 udev_tdb_t:file { getattr read write append };
+')
+
+define(`udev_modify_database_depend',`
+type udev_tdb_t;
+class file { getattr read write append };
+')


More information about the scm-commits mailing list