## Policy for logical volume management programs. ######################################## ## ## Execute lvm programs in the lvm domain. ## ## ## ## Domain allowed to transition. ## ## # interface(`lvm_domtrans',` gen_require(` type lvm_t, lvm_exec_t; ') corecmd_search_bin($1) domtrans_pattern($1, lvm_exec_t, lvm_t) ') ######################################## ## ## Execute lvm programs in the caller domain. ## ## ## ## Domain allowed access. ## ## # interface(`lvm_exec',` gen_require(` type lvm_exec_t; ') corecmd_search_bin($1) can_exec($1, lvm_exec_t) ') ######################################## ## ## Execute lvm programs in the lvm domain. ## ## ## ## Domain allowed to transition. ## ## ## ## ## The role to allow the LVM domain. ## ## ## # interface(`lvm_run',` gen_require(` type lvm_t; ') lvm_domtrans($1) role $2 types lvm_t; ') ######################################## ## ## Read LVM configuration files. ## ## ## ## Domain allowed access. ## ## ## # interface(`lvm_read_config',` gen_require(` type lvm_etc_t; ') files_search_etc($1) allow $1 lvm_etc_t:dir list_dir_perms; read_files_pattern($1, lvm_etc_t, lvm_etc_t) ') ######################################## ## ## Manage LVM configuration files. ## ## ## ## Domain allowed access. ## ## ## # interface(`lvm_manage_config',` gen_require(` type lvm_etc_t; ') files_search_etc($1) manage_dirs_pattern($1, lvm_etc_t, lvm_etc_t) manage_files_pattern($1, lvm_etc_t, lvm_etc_t) ') ######################################## ## ## Create lvm_lock_t directories ## ## ## ## Domain allowed access. ## ## ## # interface(`lvm_create_lock_dirs',` gen_require(` type lvm_lock_t; ') create_dirs_pattern($1, lvm_lock_t, lvm_lock_t) files_add_entry_lock_dirs($1) ') ###################################### ## ## Execute a domain transition to run clvmd. ## ## ## ## Domain allowed to transition. ## ## # interface(`lvm_domtrans_clvmd',` gen_require(` type clvmd_t, clvmd_exec_t; ') corecmd_search_bin($1) domtrans_pattern($1, clvmd_exec_t, clvmd_t) ') ###################################### ## ## All of the rules required to ## administrate an lvm environment. ## ## ## ## Domain allowed access. ## ## ## ## ## Role allowed access. ## ## # interface(`lvm_admin',` gen_require(` type clvmd_t, clvmd_exec_t, clvmd_initrc_exec_t, lvm_unit_t; type lvm_etc_t, lvm_lock_t, lvm_metadata_t; type lvm_var_lib_t, lvm_var_run_t, clvmd_var_run_t, lvm_tmp_t; ') allow $1 clvmd_t:process { ptrace signal_perms }; ps_process_pattern($1, clvmd_t) init_startstop_service($1, $2, clvmd_t, clvmd_initrc_exec_t, lvm_unit_t) files_search_etc($1) admin_pattern($1, lvm_etc_t) files_search_locks($1) admin_pattern($1, lvm_lock_t) files_search_var_lib($1) admin_pattern($1, lvm_var_lib_t) files_search_pids($1) admin_pattern($1, { lvm_var_run_t clvmd_var_run_t }) files_search_tmp($1) admin_pattern($1, lvm_tmp_t) ')