diff --git a/refpolicy/policy/modules/admin/amanda.te b/refpolicy/policy/modules/admin/amanda.te index 8b3c531..1816551 100644 --- a/refpolicy/policy/modules/admin/amanda.te +++ b/refpolicy/policy/modules/admin/amanda.te @@ -1,5 +1,5 @@ -policy_module(amanda,1.3.1) +policy_module(amanda,1.3.2) ####################################### # @@ -35,17 +35,11 @@ files_type(amanda_gnutarlists_t) # type for user startable files type amanda_user_exec_t; -files_type(amanda_user_exec_t) - -# temp: -typeattribute amanda_user_exec_t entry_type; +corecmd_executable_file(amanda_user_exec_t) # type for same awk and other scripts type amanda_script_exec_t; -files_type(amanda_script_exec_t) - -# temp: -typeattribute amanda_script_exec_t entry_type; +corecmd_executable_file(amanda_script_exec_t) # type for the shell configuration files type amanda_shellconfig_t; diff --git a/refpolicy/policy/modules/admin/bootloader.te b/refpolicy/policy/modules/admin/bootloader.te index 6c9261d..0bec93a 100644 --- a/refpolicy/policy/modules/admin/bootloader.te +++ b/refpolicy/policy/modules/admin/bootloader.te @@ -1,5 +1,5 @@ -policy_module(bootloader,1.2.2) +policy_module(bootloader,1.2.3) ######################################## # @@ -93,11 +93,8 @@ mls_file_read_up(bootloader_t) term_getattr_all_user_ttys(bootloader_t) term_dontaudit_manage_pty_dirs(bootloader_t) -corecmd_exec_bin(bootloader_t) -corecmd_exec_sbin(bootloader_t) -corecmd_exec_shell(bootloader_t) +corecmd_exec_all_executables(bootloader_t) -domain_exec_all_entry_files(bootloader_t) domain_use_interactive_fds(bootloader_t) files_create_boot_dirs(bootloader_t) diff --git a/refpolicy/policy/modules/admin/dpkg.te b/refpolicy/policy/modules/admin/dpkg.te index 220ed1c..98a6732 100644 --- a/refpolicy/policy/modules/admin/dpkg.te +++ b/refpolicy/policy/modules/admin/dpkg.te @@ -1,5 +1,5 @@ -policy_module(dpkg,1.0.0) +policy_module(dpkg,1.0.1) ######################################## # @@ -88,8 +88,7 @@ files_var_lib_filetrans(dpkg_t,dpkg_var_lib_t,dir) kernel_read_system_state(dpkg_t) kernel_read_kernel_sysctls(dpkg_t) -corecmd_exec_bin(dpkg_t) -corecmd_exec_sbin(dpkg_t) +corecmd_exec_all_executables(dpkg_t) # TODO: do we really need all networking? corenet_tcp_sendrecv_all_if(dpkg_t) @@ -110,7 +109,6 @@ dev_list_usbfs(dpkg_t) dev_read_urand(dpkg_t) #devices_manage_all_device_types(dpkg_t) -domain_exec_all_entry_files(dpkg_t) domain_read_all_domains_state(dpkg_t) domain_getattr_all_domains(dpkg_t) domain_dontaudit_ptrace_all_domains(dpkg_t) @@ -247,8 +245,7 @@ fs_tmpfs_filetrans(dpkg_script_t,dpkg_script_tmpfs_t,{ dir file lnk_file sock_fi kernel_read_kernel_sysctls(dpkg_script_t) kernel_read_system_state(dpkg_script_t) -corecmd_exec_bin(dpkg_script_t) -corecmd_exec_sbin(dpkg_script_t) +corecmd_exec_all_executables(dpkg_script_t) dev_list_sysfs(dpkg_script_t) # ideally we would not need this @@ -261,7 +258,6 @@ domain_read_all_domains_state(dpkg_script_t) domain_getattr_all_domains(dpkg_script_t) domain_dontaudit_ptrace_all_domains(dpkg_script_t) domain_use_interactive_fds(dpkg_script_t) -domain_exec_all_entry_files(dpkg_script_t) domain_signal_all_domains(dpkg_script_t) domain_signull_all_domains(dpkg_script_t) diff --git a/refpolicy/policy/modules/admin/firstboot.te b/refpolicy/policy/modules/admin/firstboot.te index e8b10b1..f606dbe 100644 --- a/refpolicy/policy/modules/admin/firstboot.te +++ b/refpolicy/policy/modules/admin/firstboot.te @@ -1,5 +1,5 @@ -policy_module(firstboot,1.1.0) +policy_module(firstboot,1.1.1) gen_require(` class passwd rootok; @@ -67,10 +67,7 @@ selinux_compute_user_contexts(firstboot_t) auth_dontaudit_getattr_shadow(firstboot_t) -corecmd_exec_bin(firstboot_t) -corecmd_exec_sbin(firstboot_t) - -domain_exec_all_entry_files(firstboot_t) +corecmd_exec_all_executables(firstboot_t) files_exec_etc_files(firstboot_t) files_manage_etc_files(firstboot_t) diff --git a/refpolicy/policy/modules/admin/kudzu.te b/refpolicy/policy/modules/admin/kudzu.te index 303d6d1..6615973 100644 --- a/refpolicy/policy/modules/admin/kudzu.te +++ b/refpolicy/policy/modules/admin/kudzu.te @@ -1,5 +1,5 @@ -policy_module(kudzu,1.2.0) +policy_module(kudzu,1.2.1) ######################################## # @@ -80,10 +80,8 @@ term_dontaudit_use_console(kudzu_t) # so it can write messages to the console term_use_unallocated_ttys(kudzu_t) -corecmd_exec_sbin(kudzu_t) -corecmd_exec_bin(kudzu_t) +corecmd_exec_all_executables(kudzu_t) -domain_exec_all_entry_files(kudzu_t) domain_use_interactive_fds(kudzu_t) files_search_var(kudzu_t) diff --git a/refpolicy/policy/modules/admin/portage.if b/refpolicy/policy/modules/admin/portage.if index 86f8567..efddda5 100644 --- a/refpolicy/policy/modules/admin/portage.if +++ b/refpolicy/policy/modules/admin/portage.if @@ -149,8 +149,7 @@ template(`portage_compile_domain_template',` kernel_getattr_message_if($1_t) kernel_read_kernel_sysctls($1_t) - corecmd_exec_bin($1_t) - corecmd_exec_sbin($1_t) + corecmd_exec_all_executables($1_t) # really shouldnt need this corenet_non_ipsec_sendrecv($1_t) @@ -169,7 +168,6 @@ template(`portage_compile_domain_template',` dev_read_rand($1_t) dev_read_urand($1_t) - domain_exec_all_entry_files($1_t) domain_use_interactive_fds($1_t) files_exec_etc_files($1_t) diff --git a/refpolicy/policy/modules/admin/portage.te b/refpolicy/policy/modules/admin/portage.te index 4f6adbc..8cfa6de 100644 --- a/refpolicy/policy/modules/admin/portage.te +++ b/refpolicy/policy/modules/admin/portage.te @@ -1,5 +1,5 @@ -policy_module(portage,1.0.0) +policy_module(portage,1.0.1) ######################################## # diff --git a/refpolicy/policy/modules/admin/prelink.te b/refpolicy/policy/modules/admin/prelink.te index 267813e..59678e0 100644 --- a/refpolicy/policy/modules/admin/prelink.te +++ b/refpolicy/policy/modules/admin/prelink.te @@ -1,5 +1,5 @@ -policy_module(prelink,1.1.0) +policy_module(prelink,1.1.1) ######################################## # @@ -43,19 +43,12 @@ kernel_read_system_state(prelink_t) kernel_dontaudit_search_kernel_sysctl(prelink_t) kernel_dontaudit_search_sysctl(prelink_t) -corecmd_manage_bin_files(prelink_t) -corecmd_relabel_bin_files(prelink_t) -corecmd_mmap_bin_files(prelink_t) -corecmd_manage_sbin_files(prelink_t) -corecmd_relabel_sbin_files(prelink_t) -corecmd_mmap_sbin_files(prelink_t) +corecmd_manage_all_executables(prelink_t) +corecmd_relabel_all_executables(prelink_t) +corecmd_mmap_all_executables(prelink_t) dev_read_urand(prelink_t) -domain_manage_all_entry_files(prelink_t) -domain_relabel_all_entry_files(prelink_t) -domain_mmap_all_entry_files(prelink_t) - files_list_all(prelink_t) files_getattr_all_files(prelink_t) files_write_non_security_dirs(prelink_t) diff --git a/refpolicy/policy/modules/admin/rpm.te b/refpolicy/policy/modules/admin/rpm.te index 99e484c..22682ec 100644 --- a/refpolicy/policy/modules/admin/rpm.te +++ b/refpolicy/policy/modules/admin/rpm.te @@ -1,5 +1,5 @@ -policy_module(rpm,1.3.4) +policy_module(rpm,1.3.5) ######################################## # @@ -90,6 +90,8 @@ files_var_lib_filetrans(rpm_t,rpm_var_lib_t,dir) kernel_read_system_state(rpm_t) kernel_read_kernel_sysctls(rpm_t) +corecmd_exec_all_executables(rpm_t) + corenet_tcp_sendrecv_all_if(rpm_t) corenet_raw_sendrecv_all_if(rpm_t) corenet_udp_sendrecv_all_if(rpm_t) @@ -136,12 +138,9 @@ auth_relabel_all_files_except_shadow(rpm_t) auth_manage_all_files_except_shadow(rpm_t) auth_dontaudit_read_shadow(rpm_t) -corecmd_exec_bin(rpm_t) -corecmd_exec_sbin(rpm_t) # transition to rpm script: rpm_domtrans_script(rpm_t) -domain_exec_all_entry_files(rpm_t) domain_read_all_domains_state(rpm_t) domain_getattr_all_domains(rpm_t) domain_dontaudit_ptrace_all_domains(rpm_t) @@ -295,14 +294,12 @@ auth_dontaudit_getattr_shadow(rpm_script_t) # ideally we would not need this auth_manage_all_files_except_shadow(rpm_script_t) -corecmd_exec_bin(rpm_script_t) -corecmd_exec_sbin(rpm_script_t) +corecmd_exec_all_executables(rpm_script_t) domain_read_all_domains_state(rpm_script_t) domain_getattr_all_domains(rpm_script_t) domain_dontaudit_ptrace_all_domains(rpm_script_t) domain_use_interactive_fds(rpm_script_t) -domain_exec_all_entry_files(rpm_script_t) domain_signal_all_domains(rpm_script_t) domain_signull_all_domains(rpm_script_t) diff --git a/refpolicy/policy/modules/admin/vpn.te b/refpolicy/policy/modules/admin/vpn.te index 865b0b2..6b04a1e 100644 --- a/refpolicy/policy/modules/admin/vpn.te +++ b/refpolicy/policy/modules/admin/vpn.te @@ -1,5 +1,5 @@ -policy_module(vpn,1.2.0) +policy_module(vpn,1.2.1) ######################################## # @@ -75,11 +75,7 @@ fs_getattr_tmpfs(vpnc_t) term_use_all_user_ptys(vpnc_t) term_use_all_user_ttys(vpnc_t) -corecmd_exec_bin(vpnc_t) -corecmd_exec_sbin(vpnc_t) -corecmd_exec_shell(vpnc_t) - -domain_exec_all_entry_files(vpnc_t) +corecmd_exec_all_executables(vpnc_t) files_exec_etc_files(vpnc_t) files_read_etc_runtime_files(vpnc_t) diff --git a/refpolicy/policy/modules/apps/cdrecord.te b/refpolicy/policy/modules/apps/cdrecord.te index d78c592..24ed72c 100644 --- a/refpolicy/policy/modules/apps/cdrecord.te +++ b/refpolicy/policy/modules/apps/cdrecord.te @@ -1,12 +1,10 @@ -policy_module(cdrecord,1.0.1) +policy_module(cdrecord,1.0.2) ######################################## # # Declarations # -type cdrecord_t; type cdrecord_exec_t; -domain_entry_file(cdrecord_t, cdrecord_exec_t) - +corecmd_executable_file(cdrecord_exec_t) diff --git a/refpolicy/policy/modules/apps/ethereal.te b/refpolicy/policy/modules/apps/ethereal.te index 8451069..6b8b6dd 100644 --- a/refpolicy/policy/modules/apps/ethereal.te +++ b/refpolicy/policy/modules/apps/ethereal.te @@ -1,5 +1,5 @@ -policy_module(ethereal,1.0.0) +policy_module(ethereal,1.0.1) ######################################## # @@ -7,7 +7,7 @@ policy_module(ethereal,1.0.0) # type ethereal_exec_t; -files_type(ethereal_exec_t) +corecmd_executable_file(ethereal_exec_t) type tethereal_t; type tethereal_exec_t; diff --git a/refpolicy/policy/modules/apps/evolution.if b/refpolicy/policy/modules/apps/evolution.if index 497deb0..22b4231 100644 --- a/refpolicy/policy/modules/apps/evolution.if +++ b/refpolicy/policy/modules/apps/evolution.if @@ -57,6 +57,7 @@ template(`evolution_per_userdomain_template',` type $1_evolution_alarm_t; domain_type($1_evolution_alarm_t) + domain_entry_file($1_evolution_alarm_t,evolution_alarm_exec_t) role $3 types $1_evolution_alarm_t; type $1_evolution_alarm_tmpfs_t; @@ -67,6 +68,7 @@ template(`evolution_per_userdomain_template',` type $1_evolution_exchange_t; domain_type($1_evolution_exchange_t) + domain_entry_file($1_evolution_exchange_t,evolution_exchange_exec_t) role $3 types $1_evolution_exchange_t; type $1_evolution_exchange_tmpfs_t; @@ -80,6 +82,7 @@ template(`evolution_per_userdomain_template',` type $1_evolution_server_t; domain_type($1_evolution_server_t) + domain_entry_file($1_evolution_server_t,evolution_server_exec_t) role $3 types $1_evolution_server_t; type $1_evolution_server_orbit_tmp_t; @@ -87,6 +90,7 @@ template(`evolution_per_userdomain_template',` type $1_evolution_webcal_t; domain_type($1_evolution_webcal_t) + domain_entry_file($1_evolution_webcal_t,evolution_webcal_exec_t) role $3 types $1_evolution_webcal_t; type $1_evolution_webcal_tmpfs_t; diff --git a/refpolicy/policy/modules/apps/evolution.te b/refpolicy/policy/modules/apps/evolution.te index 3b6950d..9aa32cf 100644 --- a/refpolicy/policy/modules/apps/evolution.te +++ b/refpolicy/policy/modules/apps/evolution.te @@ -1,5 +1,5 @@ -policy_module(evolution,1.0.0) +policy_module(evolution,1.0.1) ######################################## # @@ -7,16 +7,16 @@ policy_module(evolution,1.0.0) # type evolution_exec_t; -files_type(evolution_exec_t) +corecmd_executable_file(evolution_exec_t) type evolution_alarm_exec_t; -files_type(evolution_alarm_exec_t) +corecmd_executable_file(evolution_alarm_exec_t) type evolution_exchange_exec_t; -files_type(evolution_exchange_exec_t) +corecmd_executable_file(evolution_exchange_exec_t) type evolution_server_exec_t; -files_type(evolution_server_exec_t) +corecmd_executable_file(evolution_server_exec_t) type evolution_webcal_exec_t; -files_type(evolution_webcal_exec_t) +corecmd_executable_file(evolution_webcal_exec_t) diff --git a/refpolicy/policy/modules/apps/gpg.te b/refpolicy/policy/modules/apps/gpg.te index 22fb375..830326e 100644 --- a/refpolicy/policy/modules/apps/gpg.te +++ b/refpolicy/policy/modules/apps/gpg.te @@ -1,5 +1,5 @@ -policy_module(gpg, 1.0.2) +policy_module(gpg, 1.0.3) ######################################## # @@ -9,18 +9,13 @@ policy_module(gpg, 1.0.2) # Type for gpg or pgp executables. type gpg_exec_t; type gpg_helper_exec_t; -files_type(gpg_exec_t) -files_type(gpg_helper_exec_t) +corecmd_executable_file(gpg_exec_t) +corecmd_executable_file(gpg_helper_exec_t) # Type for the gpg-agent executable. type gpg_agent_exec_t; -files_type(gpg_agent_exec_t) +corecmd_executable_file(gpg_agent_exec_t) # type for the pinentry executable type pinentry_exec_t; -files_type(pinentry_exec_t) - -ifdef(`TODO',` -allow sysadm_gpg_t { home_root_t user_home_dir_type }:dir search; -allow sysadm_gpg_t ptyfile:chr_file rw_file_perms; -') +corecmd_executable_file(pinentry_exec_t) diff --git a/refpolicy/policy/modules/apps/irc.te b/refpolicy/policy/modules/apps/irc.te index 01fcbeb..90753c0 100644 --- a/refpolicy/policy/modules/apps/irc.te +++ b/refpolicy/policy/modules/apps/irc.te @@ -1,5 +1,5 @@ -policy_module(irc,1.0.0) +policy_module(irc,1.0.1) ######################################## # @@ -7,4 +7,4 @@ policy_module(irc,1.0.0) # type irc_exec_t; -files_type(irc_exec_t) +corecmd_executable_file(irc_exec_t) diff --git a/refpolicy/policy/modules/apps/lockdev.te b/refpolicy/policy/modules/apps/lockdev.te index 06eae58..7c08bba 100644 --- a/refpolicy/policy/modules/apps/lockdev.te +++ b/refpolicy/policy/modules/apps/lockdev.te @@ -1,5 +1,5 @@ -policy_module(lockdev,1.0.0) +policy_module(lockdev,1.0.1) ######################################## # @@ -7,4 +7,4 @@ policy_module(lockdev,1.0.0) # type lockdev_exec_t; -files_type(lockdev_exec_t) +corecmd_executable_file(lockdev_exec_t) diff --git a/refpolicy/policy/modules/apps/mozilla.te b/refpolicy/policy/modules/apps/mozilla.te index 3afc2c0..7d7e7ef 100644 --- a/refpolicy/policy/modules/apps/mozilla.te +++ b/refpolicy/policy/modules/apps/mozilla.te @@ -1,5 +1,5 @@ -policy_module(mozilla,1.0.0) +policy_module(mozilla,1.0.1) ######################################## # @@ -10,4 +10,4 @@ type mozilla_conf_t; files_config_file(mozilla_conf_t) type mozilla_exec_t; -files_type(mozilla_exec_t) +corecmd_executable_file(mozilla_exec_t) diff --git a/refpolicy/policy/modules/apps/mplayer.te b/refpolicy/policy/modules/apps/mplayer.te index 0d0556a..a1b79d5 100644 --- a/refpolicy/policy/modules/apps/mplayer.te +++ b/refpolicy/policy/modules/apps/mplayer.te @@ -1,5 +1,5 @@ -policy_module(mplayer,1.0.0) +policy_module(mplayer,1.0.1) ######################################## # @@ -7,10 +7,10 @@ policy_module(mplayer,1.0.0) # type mplayer_exec_t; -files_type(mplayer_exec_t) +corecmd_executable_file(mplayer_exec_t) type mencoder_exec_t; -files_type(mencoder_exec_t) +corecmd_executable_file(mencoder_exec_t) type mplayer_etc_t; files_config_file(mplayer_etc_t) diff --git a/refpolicy/policy/modules/apps/screen.te b/refpolicy/policy/modules/apps/screen.te index 0cfaf56..ffec7ab 100644 --- a/refpolicy/policy/modules/apps/screen.te +++ b/refpolicy/policy/modules/apps/screen.te @@ -1,5 +1,5 @@ -policy_module(screen,1.0.0) +policy_module(screen,1.0.1) ######################################## # @@ -10,4 +10,4 @@ type screen_dir_t; files_pid_file(screen_dir_t) type screen_exec_t; -files_type(screen_exec_t) +corecmd_executable_file(screen_exec_t) diff --git a/refpolicy/policy/modules/apps/thunderbird.te b/refpolicy/policy/modules/apps/thunderbird.te index 60f093d..917a627 100644 --- a/refpolicy/policy/modules/apps/thunderbird.te +++ b/refpolicy/policy/modules/apps/thunderbird.te @@ -1,5 +1,5 @@ -policy_module(thunderbird,1.0.0) +policy_module(thunderbird,1.0.1) ######################################## # @@ -7,4 +7,4 @@ policy_module(thunderbird,1.0.0) # type thunderbird_exec_t; -files_type(thunderbird_exec_t) +corecmd_executable_file(thunderbird_exec_t) diff --git a/refpolicy/policy/modules/apps/tvtime.te b/refpolicy/policy/modules/apps/tvtime.te index 0f557d2..407a6a5 100644 --- a/refpolicy/policy/modules/apps/tvtime.te +++ b/refpolicy/policy/modules/apps/tvtime.te @@ -1,5 +1,5 @@ -policy_module(tvtime,1.0.0) +policy_module(tvtime,1.0.1) ######################################## # @@ -7,7 +7,7 @@ policy_module(tvtime,1.0.0) # type tvtime_exec_t; -files_type(tvtime_exec_t) +corecmd_executable_file(tvtime_exec_t) type tvtime_dir_t; files_pid_file(tvtime_dir_t) diff --git a/refpolicy/policy/modules/apps/uml.te b/refpolicy/policy/modules/apps/uml.te index e04c6b1..938d4d2 100644 --- a/refpolicy/policy/modules/apps/uml.te +++ b/refpolicy/policy/modules/apps/uml.te @@ -1,5 +1,5 @@ -policy_module(uml,1.0.0) +policy_module(uml,1.0.1) ######################################## # @@ -7,7 +7,7 @@ policy_module(uml,1.0.0) # type uml_exec_t; -files_type(uml_exec_t) +corecmd_executable_file(uml_exec_t) type uml_ro_t; files_type(uml_ro_t) diff --git a/refpolicy/policy/modules/apps/userhelper.te b/refpolicy/policy/modules/apps/userhelper.te index 2b057b0..140e6f1 100644 --- a/refpolicy/policy/modules/apps/userhelper.te +++ b/refpolicy/policy/modules/apps/userhelper.te @@ -1,5 +1,5 @@ -policy_module(userhelper,1.0.2) +policy_module(userhelper,1.0.3) ######################################## # @@ -10,4 +10,4 @@ type userhelper_conf_t; files_type(userhelper_conf_t) type userhelper_exec_t; -files_type(userhelper_exec_t) +corecmd_executable_file(userhelper_exec_t) diff --git a/refpolicy/policy/modules/kernel/corecommands.if b/refpolicy/policy/modules/kernel/corecommands.if index e129415..93d38c3 100644 --- a/refpolicy/policy/modules/kernel/corecommands.if +++ b/refpolicy/policy/modules/kernel/corecommands.if @@ -10,6 +10,28 @@ ######################################## ## +## Make the specified type usable for files +## that are exectuables, such as binary programs. +## This does not include shared libraries. +## +## +## +## Type to be used for files. +## +## +# +interface(`corecmd_executable_file',` + gen_require(` + attribute exec_type; + ') + + typeattribute $1 exec_type; + + files_type($1) +') + +######################################## +## ## Create a aliased type to generic bin files. ## ## @@ -815,3 +837,80 @@ interface(`corecmd_exec_chroot',` can_exec($1,chroot_exec_t) allow $1 self:capability sys_chroot; ') + +######################################## +## +## Execute all executable files. +## +## +## +## Domain allowed access. +## +## +# +interface(`corecmd_exec_all_executables',` + gen_require(` + attribute exec_type; + type bin_t, sbin_t; + ') + + can_exec($1,exec_type) + allow $1 { bin_t sbin_t }:dir list_dir_perms; + allow $1 { bin_t sbin_t }:lnk_file read_file_perms; +') + +######################################## +## +## Create, read, write, and all executable files. +## +## +## +## Domain allowed access. +## +## +# +interface(`corecmd_manage_all_executables',` + gen_require(` + attribute exec_type; + type bin_t, sbin_t; + ') + + allow $1 exec_type:file manage_file_perms; + allow $1 { bin_t sbin_t }:dir rw_dir_perms; +') + +######################################## +## +## Relabel to and from the bin type. +## +## +## +## Domain allowed access. +## +## +# +interface(`corecmd_relabel_all_executables',` + gen_require(` + attribute exec_type; + ') + + allow $1 exec_type:file { relabelfrom relabelto }; +') + +######################################## +## +## Mmap all executables as executable. +## +## +## +## Domain allowed access. +## +## +# +interface(`corecmd_mmap_all_executables',` + gen_require(` + attribute exec_type; + ') + + allow $1 exec_type:file { getattr read execute }; +') diff --git a/refpolicy/policy/modules/kernel/corecommands.te b/refpolicy/policy/modules/kernel/corecommands.te index 675b909..43d0a2e 100644 --- a/refpolicy/policy/modules/kernel/corecommands.te +++ b/refpolicy/policy/modules/kernel/corecommands.te @@ -1,5 +1,5 @@ -policy_module(corecommands,1.3.8) +policy_module(corecommands,1.3.9) ######################################## # @@ -7,31 +7,33 @@ policy_module(corecommands,1.3.8) # # +# Types with the exec_type attribute are executable files. +# +attribute exec_type; + +# # bin_t is the type of files in the system bin directories. # type bin_t; -files_type(bin_t) +corecmd_executable_file(bin_t) # # sbin_t is the type of files in the system sbin directories. # type sbin_t; -files_type(sbin_t) +corecmd_executable_file(sbin_t) # # ls_exec_t is the type of the ls program. # type ls_exec_t; -files_type(ls_exec_t) - -#cjp: temp -typeattribute ls_exec_t entry_type; +corecmd_executable_file(ls_exec_t) # # shell_exec_t is the type of user shells such as /bin/bash. # type shell_exec_t; -files_type(shell_exec_t) +corecmd_executable_file(shell_exec_t) type chroot_exec_t; -files_type(chroot_exec_t) +corecmd_executable_file(chroot_exec_t) diff --git a/refpolicy/policy/modules/kernel/domain.if b/refpolicy/policy/modules/kernel/domain.if index 341eb91..8c3b719 100644 --- a/refpolicy/policy/modules/kernel/domain.if +++ b/refpolicy/policy/modules/kernel/domain.if @@ -99,12 +99,12 @@ interface(`domain_entry_file',` attribute entry_type; ') - files_type($2) - allow $1 $2:file entrypoint; allow $1 $2:file rx_file_perms; typeattribute $2 entry_type; + + corecmd_executable_file($2) ') ######################################## @@ -1107,11 +1107,11 @@ interface(`domain_mmap_all_entry_files',` ######################################## ## -## Execute an entry_type in the specified domain. +## Execute an entry_type in the specified domain. ## ## ## -## The type of the process performing this action. +## The type of the process performing this action. ## ## # diff --git a/refpolicy/policy/modules/kernel/domain.te b/refpolicy/policy/modules/kernel/domain.te index bde89e0..8c6ea33 100644 --- a/refpolicy/policy/modules/kernel/domain.te +++ b/refpolicy/policy/modules/kernel/domain.te @@ -1,5 +1,5 @@ -policy_module(domain,1.1.1) +policy_module(domain,1.1.2) ######################################## # diff --git a/refpolicy/policy/modules/services/apache.if b/refpolicy/policy/modules/services/apache.if index b0d39e5..6228049 100644 --- a/refpolicy/policy/modules/services/apache.if +++ b/refpolicy/policy/modules/services/apache.if @@ -98,10 +98,7 @@ template(`apache_content_template',` dev_read_rand(httpd_$1_script_t) dev_read_urand(httpd_$1_script_t) - corecmd_exec_bin(httpd_$1_script_t) - corecmd_exec_sbin(httpd_$1_script_t) - - domain_exec_all_entry_files(httpd_$1_script_t) + corecmd_exec_all_executables(httpd_$1_script_t) files_exec_etc_files(httpd_$1_script_t) files_read_etc_files(httpd_$1_script_t) diff --git a/refpolicy/policy/modules/services/apache.te b/refpolicy/policy/modules/services/apache.te index 148da51..e4d9dbe 100644 --- a/refpolicy/policy/modules/services/apache.te +++ b/refpolicy/policy/modules/services/apache.te @@ -1,5 +1,5 @@ -policy_module(apache,1.3.6) +policy_module(apache,1.3.7) # # NOTES: diff --git a/refpolicy/policy/modules/services/apm.te b/refpolicy/policy/modules/services/apm.te index 48ad02e..5f47a78 100644 --- a/refpolicy/policy/modules/services/apm.te +++ b/refpolicy/policy/modules/services/apm.te @@ -1,5 +1,5 @@ -policy_module(apm,1.2.3) +policy_module(apm,1.2.4) ######################################## # @@ -107,11 +107,8 @@ selinux_search_fs(apmd_t) term_dontaudit_use_console(apmd_t) -corecmd_exec_bin(apmd_t) -corecmd_exec_sbin(apmd_t) -corecmd_exec_ls(apmd_t) +corecmd_exec_all_executables(apmd_t) -domain_exec_all_entry_files(apmd_t) domain_read_all_domains_state(apmd_t) domain_use_interactive_fds(apmd_t) domain_dontaudit_getattr_all_sockets(apmd_t) diff --git a/refpolicy/policy/modules/services/cron.if b/refpolicy/policy/modules/services/cron.if index 871f458..406af37 100644 --- a/refpolicy/policy/modules/services/cron.if +++ b/refpolicy/policy/modules/services/cron.if @@ -108,7 +108,8 @@ template(`cron_per_userdomain_template',` fs_getattr_all_fs($1_crond_t) - domain_exec_all_entry_files($1_crond_t) + corecmd_exec_all_executables($1_crond_t) + # quiet other ps operations domain_dontaudit_read_all_domains_state($1_crond_t) domain_dontaudit_getattr_all_domains($1_crond_t) @@ -118,9 +119,6 @@ template(`cron_per_userdomain_template',` # for nscd: files_dontaudit_search_pids($1_crond_t) - corecmd_exec_bin($1_crond_t) - corecmd_exec_sbin($1_crond_t) - libs_use_ld_so($1_crond_t) libs_use_shared_libs($1_crond_t) libs_exec_lib_files($1_crond_t) diff --git a/refpolicy/policy/modules/services/cron.te b/refpolicy/policy/modules/services/cron.te index d5bc52e..b311aeb 100644 --- a/refpolicy/policy/modules/services/cron.te +++ b/refpolicy/policy/modules/services/cron.te @@ -1,5 +1,5 @@ -policy_module(cron,1.3.3) +policy_module(cron,1.3.4) gen_require(` class passwd rootok; @@ -12,7 +12,7 @@ gen_require(` attribute cron_spool_type; type anacron_exec_t; -files_type(anacron_exec_t) +corecmd_executable_file(anacron_exec_t) type cron_spool_t; files_type(cron_spool_t) @@ -34,7 +34,7 @@ type crond_var_run_t; files_pid_file(crond_var_run_t) type crontab_exec_t; -files_type(crontab_exec_t) +corecmd_executable_file(crontab_exec_t) type system_cron_spool_t, cron_spool_type; files_type(system_cron_spool_t) @@ -276,6 +276,8 @@ ifdef(`targeted_policy',` # ps does not need to access /boot when run from cron files_dontaudit_search_boot(system_crond_t) + corecmd_exec_all_executables(system_crond_t) + corenet_tcp_sendrecv_all_if(system_crond_t) corenet_raw_sendrecv_all_if(system_crond_t) corenet_udp_sendrecv_all_if(system_crond_t) @@ -298,10 +300,6 @@ ifdef(`targeted_policy',` fs_getattr_all_pipes(system_crond_t) fs_getattr_all_sockets(system_crond_t) - corecmd_exec_bin(system_crond_t) - corecmd_exec_sbin(system_crond_t) - - domain_exec_all_entry_files(system_crond_t) # quiet other ps operations domain_dontaudit_read_all_domains_state(system_crond_t) diff --git a/refpolicy/policy/modules/services/hal.te b/refpolicy/policy/modules/services/hal.te index e8e94fc..dfd67d4 100644 --- a/refpolicy/policy/modules/services/hal.te +++ b/refpolicy/policy/modules/services/hal.te @@ -1,5 +1,5 @@ -policy_module(hal,1.3.5) +policy_module(hal,1.3.6) ######################################## # @@ -56,8 +56,7 @@ files_getattr_home_dir(hald_t) auth_read_pam_console_data(hald_t) -corecmd_exec_bin(hald_t) -corecmd_exec_sbin(hald_t) +corecmd_exec_all_executables(hald_t) corenet_tcp_sendrecv_all_if(hald_t) corenet_udp_sendrecv_all_if(hald_t) @@ -82,12 +81,10 @@ dev_manage_generic_chr_files(hald_t) dev_rw_generic_usb_dev(hald_t) dev_setattr_generic_usb_dev(hald_t) dev_setattr_usbfs_files(hald_t) - # hal is now execing pm-suspend dev_rw_sysfs(hald_t) domain_use_interactive_fds(hald_t) -domain_exec_all_entry_files(hald_t) files_exec_etc_files(hald_t) files_read_etc_files(hald_t) diff --git a/refpolicy/policy/modules/services/lpd.te b/refpolicy/policy/modules/services/lpd.te index e9516cb..6139501 100644 --- a/refpolicy/policy/modules/services/lpd.te +++ b/refpolicy/policy/modules/services/lpd.te @@ -1,5 +1,5 @@ -policy_module(lpd,1.2.1) +policy_module(lpd,1.2.2) ######################################## # @@ -25,7 +25,7 @@ type lpd_var_run_t; files_pid_file(lpd_var_run_t) type lpr_exec_t; -files_type(lpr_exec_t) +corecmd_executable_file(lpr_exec_t) type print_spool_t; files_tmp_file(print_spool_t) diff --git a/refpolicy/policy/modules/services/mailman.if b/refpolicy/policy/modules/services/mailman.if index 497536d..d95f0ac 100644 --- a/refpolicy/policy/modules/services/mailman.if +++ b/refpolicy/policy/modules/services/mailman.if @@ -65,10 +65,7 @@ template(`mailman_domain_template', ` fs_getattr_xattr_fs(mailman_$1_t) - corecmd_exec_bin(mailman_$1_t) - corecmd_exec_sbin(mailman_$1_t) - - domain_exec_all_entry_files(mailman_$1_t) + corecmd_exec_all_executables(mailman_$1_t) files_exec_etc_files(mailman_$1_t) files_list_usr(mailman_$1_t) diff --git a/refpolicy/policy/modules/services/mailman.te b/refpolicy/policy/modules/services/mailman.te index 584ee4b..4c29812 100644 --- a/refpolicy/policy/modules/services/mailman.te +++ b/refpolicy/policy/modules/services/mailman.te @@ -1,5 +1,5 @@ -policy_module(mailman,1.1.2) +policy_module(mailman,1.1.3) ######################################## # diff --git a/refpolicy/policy/modules/services/mta.te b/refpolicy/policy/modules/services/mta.te index b5f7e91..0fef637 100644 --- a/refpolicy/policy/modules/services/mta.te +++ b/refpolicy/policy/modules/services/mta.te @@ -1,5 +1,5 @@ -policy_module(mta,1.3.2) +policy_module(mta,1.3.3) ######################################## # @@ -86,10 +86,7 @@ ifdef(`targeted_policy',` # cjp: another require-in-else to resolve # optional_policy(`',` - corecmd_exec_bin(system_mail_t) - corecmd_exec_sbin(system_mail_t) - - domain_exec_all_entry_files(system_mail_t) + corecmd_exec_all_executables(system_mail_t) files_exec_etc_files(system_mail_t) diff --git a/refpolicy/policy/modules/services/postfix.te b/refpolicy/policy/modules/services/postfix.te index a81220b..ec3a724 100644 --- a/refpolicy/policy/modules/services/postfix.te +++ b/refpolicy/policy/modules/services/postfix.te @@ -1,5 +1,5 @@ -policy_module(postfix,1.2.2) +policy_module(postfix,1.2.3) ######################################## # @@ -22,10 +22,7 @@ type postfix_etc_t; files_type(postfix_etc_t) type postfix_exec_t; -files_type(postfix_exec_t) - -# temp: -typeattribute postfix_exec_t entry_type; +corecmd_executable_file(postfix_exec_t) postfix_server_domain_template(local) mta_mailserver_delivery(postfix_local_t) diff --git a/refpolicy/policy/modules/services/smartmon.te b/refpolicy/policy/modules/services/smartmon.te index 876d839..47debff 100644 --- a/refpolicy/policy/modules/services/smartmon.te +++ b/refpolicy/policy/modules/services/smartmon.te @@ -1,5 +1,5 @@ -policy_module(smartmon,1.0.0) +policy_module(smartmon,1.0.1) ######################################## # @@ -41,8 +41,7 @@ kernel_read_kernel_sysctls(fsdaemon_t) kernel_read_software_raid_state(fsdaemon_t) kernel_read_system_state(fsdaemon_t) -corecmd_exec_bin(fsdaemon_t) -corecmd_exec_sbin(fsdaemon_t) +corecmd_exec_all_executables(fsdaemon_t) corenet_non_ipsec_sendrecv(fsdaemon_t) corenet_udp_sendrecv_generic_if(fsdaemon_t) @@ -54,7 +53,6 @@ corenet_udp_bind_all_nodes(fsdaemon_t) dev_read_sysfs(fsdaemon_t) -domain_exec_all_entry_files(fsdaemon_t) domain_use_interactive_fds(fsdaemon_t) files_exec_etc_files(fsdaemon_t) diff --git a/refpolicy/policy/modules/services/spamassassin.te b/refpolicy/policy/modules/services/spamassassin.te index ed2062a..e8c4a39 100644 --- a/refpolicy/policy/modules/services/spamassassin.te +++ b/refpolicy/policy/modules/services/spamassassin.te @@ -1,5 +1,5 @@ -policy_module(spamassassin,1.3.2) +policy_module(spamassassin,1.3.3) ######################################## # @@ -8,7 +8,7 @@ policy_module(spamassassin,1.3.2) # spamassassin client executable type spamc_exec_t; -files_type(spamc_exec_t) +corecmd_executable_file(spamc_exec_t) type spamd_t; type spamd_exec_t; @@ -21,7 +21,7 @@ type spamd_var_run_t; files_pid_file(spamd_var_run_t) type spamassassin_exec_t; -files_type(spamassassin_exec_t) +corecmd_executable_file(spamassassin_exec_t) ######################################## # diff --git a/refpolicy/policy/modules/services/ssh.te b/refpolicy/policy/modules/services/ssh.te index 546f8d7..8254d66 100644 --- a/refpolicy/policy/modules/services/ssh.te +++ b/refpolicy/policy/modules/services/ssh.te @@ -1,5 +1,5 @@ -policy_module(ssh,1.3.0) +policy_module(ssh,1.3.1) ######################################## # @@ -10,10 +10,10 @@ attribute ssh_server; # ssh client executable. type ssh_exec_t; -files_type(ssh_exec_t) +corecmd_executable_file(ssh_exec_t) type ssh_keygen_exec_t; -files_type(ssh_keygen_exec_t) +corecmd_executable_file(ssh_keygen_exec_t) type ssh_keysign_exec_t; files_type(ssh_keysign_exec_t) @@ -23,7 +23,7 @@ files_type(ssh_keysign_exec_t) gen_require(` type sshd_exec_t; ') -files_type(sshd_exec_t) +corecmd_executable_file(sshd_exec_t) type sshd_key_t; files_type(sshd_key_t) @@ -34,11 +34,6 @@ ifdef(`targeted_policy',` type sshd_var_run_t; files_type(sshd_var_run_t) - - # FIXME - typeattribute ssh_exec_t entry_type; - typeattribute ssh_keygen_exec_t entry_type; - typeattribute ssh_keysign_exec_t entry_type; ',` # Type for the ssh-agent executable. type ssh_agent_exec_t; diff --git a/refpolicy/policy/modules/services/xserver.if b/refpolicy/policy/modules/services/xserver.if index ec410cd..76227fa 100644 --- a/refpolicy/policy/modules/services/xserver.if +++ b/refpolicy/policy/modules/services/xserver.if @@ -240,6 +240,7 @@ template(`xserver_per_userdomain_template',` type $1_iceauth_t; domain_type($1_iceauth_t) + domain_entry_file($1_iceauth_t,iceauth_exec_t) role $3 types $1_iceauth_t; type $1_iceauth_home_t alias $1_iceauth_rw_t; @@ -248,6 +249,7 @@ template(`xserver_per_userdomain_template',` type $1_xauth_t; domain_type($1_xauth_t) + domain_entry_file($1_xauth_t,xauth_exec_t) role $3 types $1_xauth_t; type $1_xauth_home_t alias $1_xauth_rw_t; diff --git a/refpolicy/policy/modules/services/xserver.te b/refpolicy/policy/modules/services/xserver.te index b39f586..e373e84 100644 --- a/refpolicy/policy/modules/services/xserver.te +++ b/refpolicy/policy/modules/services/xserver.te @@ -1,5 +1,5 @@ -policy_module(xserver,1.1.5) +policy_module(xserver,1.1.6) ######################################## # @@ -14,10 +14,10 @@ type ice_tmp_t; files_tmp_file(ice_tmp_t) type iceauth_exec_t; -files_type(iceauth_exec_t) +corecmd_executable_file(iceauth_exec_t) type xauth_exec_t; -files_type(xauth_exec_t) +corecmd_executable_file(xauth_exec_t) # this is not actually a device, its a pipe type xconsole_device_t; @@ -58,10 +58,10 @@ files_config_file(xkb_var_lib_t) # Type for the executable used to start the X server, e.g. Xwrapper. type xserver_exec_t; -files_type(xserver_exec_t) +corecmd_executable_file(xserver_exec_t) type xsession_exec_t; -files_type(xsession_exec_t) +corecmd_executable_file(xsession_exec_t) # Type for the X server log file. type xserver_log_t; diff --git a/refpolicy/policy/modules/system/init.te b/refpolicy/policy/modules/system/init.te index 49c5ec4..713acf5 100644 --- a/refpolicy/policy/modules/system/init.te +++ b/refpolicy/policy/modules/system/init.te @@ -1,5 +1,5 @@ -policy_module(init,1.3.8) +policy_module(init,1.3.9) gen_require(` class passwd rootok; @@ -306,10 +306,7 @@ auth_read_pam_pid(initrc_t) auth_delete_pam_pid(initrc_t) auth_delete_pam_console_data(initrc_t) -corecmd_exec_bin(initrc_t) -corecmd_exec_sbin(initrc_t) -corecmd_exec_shell(initrc_t) -corecmd_exec_ls(initrc_t) +corecmd_exec_all_executables(initrc_t) domain_kill_all_domains(initrc_t) domain_signal_all_domains(initrc_t) @@ -322,7 +319,6 @@ domain_getattr_all_domains(initrc_t) domain_dontaudit_ptrace_all_domains(initrc_t) domain_getsession_all_domains(initrc_t) domain_use_interactive_fds(initrc_t) -domain_exec_all_entry_files(initrc_t) # for lsof which is used by alsa shutdown: domain_dontaudit_getattr_all_udp_sockets(initrc_t) domain_dontaudit_getattr_all_tcp_sockets(initrc_t) diff --git a/refpolicy/policy/modules/system/pcmcia.te b/refpolicy/policy/modules/system/pcmcia.te index e857127..e2d419f 100644 --- a/refpolicy/policy/modules/system/pcmcia.te +++ b/refpolicy/policy/modules/system/pcmcia.te @@ -1,5 +1,5 @@ -policy_module(pcmcia,1.0.0) +policy_module(pcmcia,1.0.1) ######################################## # @@ -70,12 +70,9 @@ term_getattr_all_user_ttys(cardmgr_t) term_dontaudit_use_console(cardmgr_t) term_dontaudit_getattr_all_user_ptys(cardmgr_t) -corecmd_exec_bin(cardmgr_t) -corecmd_exec_sbin(cardmgr_t) -corecmd_exec_ls(cardmgr_t) +corecmd_exec_all_executables(cardmgr_t) domain_use_interactive_fds(cardmgr_t) -domain_exec_all_entry_files(cardmgr_t) # Read /proc/PID directories for all domains (for fuser). domain_read_confined_domains_state(cardmgr_t) domain_getattr_confined_domains(cardmgr_t) diff --git a/refpolicy/policy/modules/system/udev.te b/refpolicy/policy/modules/system/udev.te index f27e29d..06dec28 100644 --- a/refpolicy/policy/modules/system/udev.te +++ b/refpolicy/policy/modules/system/udev.te @@ -1,5 +1,5 @@ -policy_module(udev,1.3.2) +policy_module(udev,1.3.3) ######################################## # @@ -101,11 +101,8 @@ selinux_compute_user_contexts(udev_t) auth_use_nsswitch(udev_t) -corecmd_exec_bin(udev_t) -corecmd_exec_sbin(udev_t) -corecmd_exec_shell(udev_t) +corecmd_exec_all_executables(udev_t) -domain_exec_all_entry_files(udev_t) domain_read_all_domains_state(udev_t) files_read_etc_runtime_files(udev_t) diff --git a/refpolicy/policy/modules/system/userdomain.if b/refpolicy/policy/modules/system/userdomain.if index 4bdf8f0..59b57b6 100644 --- a/refpolicy/policy/modules/system/userdomain.if +++ b/refpolicy/policy/modules/system/userdomain.if @@ -527,7 +527,6 @@ template(`unpriv_user_template', ` typeattribute $1_t unpriv_userdomain; domain_interactive_fd($1_t) - domain_exec_all_entry_files($1_t) typeattribute $1_devpts_t user_ptynode; @@ -562,10 +561,10 @@ template(`unpriv_user_template', ` kernel_read_system_state($1_t) kernel_read_network_state($1_t) + dev_read_sysfs($1_t) - # cjp: why? - files_read_kernel_symbol_table($1_t) + corecmd_exec_all_executables($1_t) # port access is audited even if dac would not have allowed it, so dontaudit it here corenet_dontaudit_tcp_bind_all_reserved_ports($1_t) @@ -582,6 +581,8 @@ template(`unpriv_user_template', ` files_read_world_readable_symlinks($1_t) files_read_world_readable_pipes($1_t) files_read_world_readable_sockets($1_t) + # cjp: why? + files_read_kernel_symbol_table($1_t) init_read_utmp($1_t) # The library functions always try to open read-write first, diff --git a/refpolicy/policy/modules/system/userdomain.te b/refpolicy/policy/modules/system/userdomain.te index 1d5ea22..d1e4a33 100644 --- a/refpolicy/policy/modules/system/userdomain.te +++ b/refpolicy/policy/modules/system/userdomain.te @@ -1,5 +1,5 @@ -policy_module(userdomain,1.3.15) +policy_module(userdomain,1.3.16) gen_require(` role sysadm_r, staff_r, user_r;