diff --git a/policy/modules/system/modutils.if b/policy/modules/system/modutils.if index b492674d6..350c45029 100644 --- a/policy/modules/system/modutils.if +++ b/policy/modules/system/modutils.if @@ -307,13 +307,11 @@ interface(`modutils_domtrans_update_mods',` # interface(`modutils_run_update_mods',` gen_require(` - type update_modules_t; + attribute_role update_modules_roles; ') modutils_domtrans_update_mods($1) - role $2 types update_modules_t; - - modutils_run_insmod(update_modules_t, $2) + roleattribute $2 update_modules_roles; ') ######################################## diff --git a/policy/modules/system/modutils.te b/policy/modules/system/modutils.te index 2e1c522dc..83d060ec6 100644 --- a/policy/modules/system/modutils.te +++ b/policy/modules/system/modutils.te @@ -5,6 +5,8 @@ policy_module(modutils, 1.11.1) # Declarations # +attribute_role update_modules_roles; + type depmod_t; type depmod_exec_t; init_system_domain(depmod_t, depmod_exec_t) @@ -27,7 +29,8 @@ files_type(modules_dep_t) type update_modules_t; type update_modules_exec_t; init_system_domain(update_modules_t, update_modules_exec_t) -role system_r types update_modules_t; +roleattribute system_r update_modules_roles; +role update_modules_roles types update_modules_t; type update_modules_tmp_t; files_tmp_file(update_modules_tmp_t) @@ -290,6 +293,8 @@ logging_send_syslog_msg(update_modules_t) miscfiles_read_localization(update_modules_t) +modutils_run_insmod(update_modules_t, update_modules_roles) + userdom_use_user_terminals(update_modules_t) userdom_dontaudit_search_user_home_dirs(update_modules_t)