## Policy for the RPM package manager. ######################################## ## ## Execute rpm programs in the rpm domain. ## ## ## ## The type of the process performing this action. ## ## # interface(`rpm_domtrans',` gen_require(` type rpm_t, rpm_exec_t; ') files_search_usr($1) corecmd_search_bin($1) domtrans_pattern($1, rpm_exec_t, rpm_t) ') ######################################## ## ## Execute rpm_script programs in the rpm_script domain. ## ## ## ## Domain allowed access. ## ## # interface(`rpm_domtrans_script',` gen_require(` type rpm_script_t; ') # transition to rpm script: corecmd_shell_domtrans($1,rpm_script_t) allow rpm_script_t $1:fd use; allow rpm_script_t $1:fifo_file rw_file_perms; allow rpm_script_t $1:process sigchld; ') ######################################## ## ## Execute RPM programs in the RPM domain. ## ## ## ## The type of the process performing this action. ## ## ## ## ## The role to allow the RPM domain. ## ## ## # interface(`rpm_run',` gen_require(` type rpm_t, rpm_script_t; ') rpm_domtrans($1) role $2 types rpm_t; role $2 types rpm_script_t; seutil_run_loadpolicy(rpm_script_t, $2) seutil_run_semanage(rpm_script_t, $2) seutil_run_setfiles(rpm_script_t, $2) ') ######################################## ## ## Execute the rpm client in the caller domain. ## ## ## ## Domain allowed access. ## ## # interface(`rpm_exec',` gen_require(` type rpm_exec_t; ') corecmd_search_bin($1) can_exec($1, rpm_exec_t) ') ######################################## ## ## Inherit and use file descriptors from RPM. ## ## ## ## The type of the process performing this action. ## ## # interface(`rpm_use_fds',` gen_require(` type rpm_t; ') allow $1 rpm_t:fd use; ') ######################################## ## ## Read from an unnamed RPM pipe. ## ## ## ## The type of the process performing this action. ## ## # interface(`rpm_read_pipes',` gen_require(` type rpm_t; ') allow $1 rpm_t:fifo_file read_fifo_file_perms; ') ######################################## ## ## Read and write an unnamed RPM pipe. ## ## ## ## The type of the process performing this action. ## ## # interface(`rpm_rw_pipes',` gen_require(` type rpm_t; ') allow $1 rpm_t:fifo_file rw_fifo_file_perms; ') ######################################## ## ## Send and receive messages from ## rpm over dbus. ## ## ## ## Domain allowed access. ## ## # interface(`rpm_dbus_chat',` gen_require(` type rpm_t; class dbus send_msg; ') allow $1 rpm_t:dbus send_msg; allow rpm_t $1:dbus send_msg; ') ######################################## ## ## Create, read, write, and delete the RPM log. ## ## ## ## The type of the process performing this action. ## ## # interface(`rpm_manage_log',` gen_require(` type rpm_log_t; ') logging_rw_generic_log_dirs($1) allow $1 rpm_log_t:file manage_file_perms; ') ######################################## ## ## Inherit and use file descriptors from RPM scripts. ## ## ## ## The type of the process performing this action. ## ## # interface(`rpm_use_script_fds',` gen_require(` type rpm_script_t; ') allow $1 rpm_script_t:fd use; ') ######################################## ## ## Create, read, write, and delete RPM ## script temporary files. ## ## ## ## Domain allowed access. ## ## # interface(`rpm_manage_script_tmp_files',` gen_require(` type rpm_script_tmp_t; ') files_search_tmp($1) manage_files_pattern($1, rpm_script_tmp_t, rpm_script_tmp_t) ') ######################################## ## ## Read the RPM package database. ## ## ## ## The type of the process performing this action. ## ## # interface(`rpm_read_db',` gen_require(` type rpm_var_lib_t; ') files_search_var_lib($1) allow $1 rpm_var_lib_t:dir list_dir_perms; read_files_pattern($1, rpm_var_lib_t, rpm_var_lib_t) read_lnk_files_pattern($1, rpm_var_lib_t, rpm_var_lib_t) ') ######################################## ## ## Create, read, write, and delete the RPM package database. ## ## ## ## The type of the process performing this action. ## ## # interface(`rpm_manage_db',` gen_require(` type rpm_var_lib_t; ') files_search_var_lib($1) manage_files_pattern($1, rpm_var_lib_t, rpm_var_lib_t) manage_lnk_files_pattern($1, rpm_var_lib_t, rpm_var_lib_t) ') ######################################## ## ## Do not audit attempts to create, read, ## write, and delete the RPM package database. ## ## ## ## Domain to not audit. ## ## # interface(`rpm_dontaudit_manage_db',` gen_require(` type rpm_var_lib_t; ') dontaudit $1 rpm_var_lib_t:dir rw_dir_perms; dontaudit $1 rpm_var_lib_t:file manage_file_perms; dontaudit $1 rpm_var_lib_t:lnk_file manage_lnk_file_perms; ')