## Prelink ELF shared library mappings. ######################################## ## ## Execute the prelink program in the prelink domain. ## ## ## ## Domain allowed to transition. ## ## # interface(`prelink_domtrans',` gen_require(` type prelink_t, prelink_exec_t; ') corecmd_search_bin($1) domtrans_pattern($1, prelink_exec_t, prelink_t) ifdef(`hide_broken_symptoms', ` dontaudit prelink_t $1:socket_class_set { read write }; dontaudit prelink_t $1:fifo_file setattr; ') ') ######################################## ## ## Execute the prelink program in the current domain. ## ## ## ## Domain allowed access. ## ## # interface(`prelink_exec',` gen_require(` type prelink_exec_t; ') corecmd_search_bin($1) can_exec($1, prelink_exec_t) ') ######################################## ## ## Execute the prelink program in the prelink domain. ## ## ## ## Domain allowed to transition. ## ## ## ## ## The role to allow the prelink domain. ## ## ## # interface(`prelink_run',` gen_require(` type prelink_t; ') prelink_domtrans($1) role $2 types prelink_t; ') ######################################## ## ## Make the specified file type prelinkable. ## ## ## ## File type to be prelinked. ## ## # # cjp: added for misc non-entrypoint objects interface(`prelink_object_file',` gen_require(` attribute prelink_object; ') typeattribute $1 prelink_object; ') ######################################## ## ## Read the prelink cache. ## ## ## ## Domain allowed access. ## ## # interface(`prelink_read_cache',` gen_require(` type prelink_cache_t; ') files_search_etc($1) allow $1 prelink_cache_t:file read_file_perms; ') ######################################## ## ## Delete the prelink cache. ## ## ## ## Domain allowed access. ## ## # interface(`prelink_delete_cache',` gen_require(` type prelink_cache_t; ') allow $1 prelink_cache_t:file unlink; files_rw_etc_dirs($1) ') ######################################## ## ## Create, read, write, and delete ## prelink log files. ## ## ## ## Domain allowed access. ## ## # interface(`prelink_manage_log',` gen_require(` type prelink_log_t; ') logging_search_logs($1) manage_files_pattern($1, prelink_log_t, prelink_log_t) ') ######################################## ## ## Create, read, write, and delete ## prelink var_lib files. ## ## ## ## Domain allowed access. ## ## # interface(`prelink_manage_lib',` gen_require(` type prelink_var_lib_t; ') files_search_var_lib($1) manage_files_pattern($1, prelink_var_lib_t, prelink_var_lib_t) ') ######################################## ## ## Relabel from files in the /boot directory. ## ## ## ## Domain allowed access. ## ## # interface(`prelink_relabelfrom_lib',` gen_require(` type prelink_var_lib_t; ') files_search_var_lib($1) relabelfrom_files_pattern($1, prelink_var_lib_t, prelink_var_lib_t) ') ######################################## ## ## Relabel from files in the /boot directory. ## ## ## ## Domain allowed access. ## ## # interface(`prelink_relabel_lib',` gen_require(` type prelink_var_lib_t; ') files_search_var_lib($1) relabel_files_pattern($1, prelink_var_lib_t, prelink_var_lib_t) ') ######################################## ## ## Transition to prelink named content ## ## ## ## Domain allowed access. ## ## # interface(`prelink_filetrans_named_content',` gen_require(` type prelink_cache_t; ') files_etc_filetrans($1, prelink_cache_t, file, "prelink.cache") ')