## 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) domtrans_pattern($1, dpkg_exec_t, dpkg_t) ') ######################################## ## ## 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 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 read_fifo_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_fifo_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 list_dir_perms; read_files_pattern($1, dpkg_var_lib_t, dpkg_var_lib_t) read_lnk_files_pattern($1, dpkg_var_lib_t, dpkg_var_lib_t) ') ######################################## ## ## 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) manage_files_pattern($1, dpkg_var_lib_t, dpkg_var_lib_t) manage_lnk_files_pattern($1, dpkg_var_lib_t, dpkg_var_lib_t) ') ######################################## ## ## 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 manage_lnk_file_perms; ') ######################################## ## ## Lock the dpkg package database. ## ## ## ## The type of the process performing this action. ## ## # interface(`dpkg_lock_db',` gen_require(` type dpkg_lock_t, dpkg_var_lib_t; ') files_search_var_lib($1) allow $1 dpkg_var_lib_t:dir list_dir_perms; allow $1 dpkg_lock_t:file { getattr create read write append unlink lock }; ')