## Policy for the Debian package manager. # TODO: need debconf policy # TODO: need install-menu policy ######################################## ## ## Execute dpkg programs in the dpkg domain. ## ## ## ## The type of the process performing this action. ## ## # interface(`dpkg_domtrans',` gen_require(` type dpkg_t, dpkg_exec_t; ') files_search_usr($1) corecmd_search_bin($1) domain_auto_trans($1,dpkg_exec_t,dpkg_t) # allow basic communication allow $1 dpkg_t:fd use; allow dpkg_t $1:fd use; allow dpkg_t $1:fifo_file rw_file_perms; allow dpkg_t $1:process sigchld; ') ######################################## ## ## Execute dpkg_script programs in the dpkg_script domain. ## ## ## ## Domain allowed access. ## ## # interface(`dpkg_domtrans_script',` gen_require(` type dpkg_script_t; ') # transition to dpkg script: corecmd_shell_domtrans($1,dpkg_script_t) allow $1 dpkg_script_t:fd use; allow dpkg_script_t $1:fd use; allow dpkg_script_t $1:fifo_file rw_file_perms; allow dpkg_script_t $1:process sigchld; ') ######################################## ## ## Execute dpkg programs in the dpkg domain. ## ## ## ## The type of the process performing this action. ## ## ## ## ## The role to allow the dpkg domain. ## ## ## ## ## The type of the terminal allow the dpkg domain to use. ## ## # interface(`dpkg_run',` gen_require(` type dpkg_t, dpkg_script_t; ') dpkg_domtrans($1) role $2 types dpkg_t; role $2 types dpkg_script_t; seutil_run_loadpolicy(dpkg_script_t,$2,$3) allow dpkg_t $3:chr_file rw_term_perms; ') ######################################## ## ## Inherit and use file descriptors from dpkg. ## ## ## ## The type of the process performing this action. ## ## # interface(`dpkg_use_fds',` gen_require(` type dpkg_t; ') allow $1 dpkg_t:fd use; ') ######################################## ## ## Read from an unnamed dpkg pipe. ## ## ## ## The type of the process performing this action. ## ## # interface(`dpkg_read_pipes',` gen_require(` type dpkg_t; ') allow $1 dpkg_t:fifo_file r_file_perms; ') ######################################## ## ## Read and write an unnamed dpkg pipe. ## ## ## ## The type of the process performing this action. ## ## # interface(`dpkg_rw_pipes',` gen_require(` type dpkg_t; ') allow $1 dpkg_t:fifo_file rw_file_perms; ') ######################################## ## ## Inherit and use file descriptors from dpkg scripts. ## ## ## ## The type of the process performing this action. ## ## # interface(`dpkg_use_script_fds',` gen_require(` type dpkg_script_t; ') allow $1 dpkg_script_t:fd use; ') ######################################## ## ## Read the dpkg package database. ## ## ## ## The type of the process performing this action. ## ## # interface(`dpkg_read_db',` gen_require(` type dpkg_var_lib_t; ') files_search_var_lib($1) allow $1 dpkg_var_lib_t:dir r_dir_perms; allow $1 dpkg_var_lib_t:file { getattr read }; allow $1 dpkg_var_lib_t:lnk_file r_file_perms; ') ######################################## ## ## Create, read, write, and delete the dpkg package database. ## ## ## ## The type of the process performing this action. ## ## # interface(`dpkg_manage_db',` gen_require(` type dpkg_var_lib_t; ') files_search_var_lib($1) allow $1 dpkg_var_lib_t:dir rw_dir_perms; allow $1 dpkg_var_lib_t:file manage_file_perms; allow $1 dpkg_var_lib_t:lnk_file { getattr read write unlink }; ') ######################################## ## ## Do not audit attempts to create, read, ## write, and delete the dpkg package database. ## ## ## ## Domain to not audit. ## ## # interface(`dpkg_dontaudit_manage_db',` gen_require(` type dpkg_var_lib_t; ') dontaudit $1 dpkg_var_lib_t:dir rw_dir_perms; dontaudit $1 dpkg_var_lib_t:file manage_file_perms; dontaudit $1 dpkg_var_lib_t:lnk_file create_lnk_perms; ') ######################################## ## ## Lock the dpkg package database. ## ## ## ## The type of the process performing this action. ## ## # interface(`dpkg_lock_db',` gen_require(` type dpkg_lock_t; ') files_search_var_lib($1) allow $1 dpkg_var_lib_t:dir r_dir_perms; allow $1 dpkg_lock_t:file { getattr create read write append unlink lock }; ')