## Music Player Daemon. ######################################## ## ## Role access for mpd. ## ## ## ## Role allowed access. ## ## ## ## ## User domain for the role. ## ## # template(`mpd_role',` refpolicywarn(`$0($*) has been deprecated') ') ######################################## ## ## Execute a domain transition to run mpd. ## ## ## ## Domain allowed to transition. ## ## # interface(`mpd_domtrans',` gen_require(` type mpd_t, mpd_exec_t; ') corecmd_search_bin($1) domtrans_pattern($1, mpd_exec_t, mpd_t) ') ######################################## ## ## Execute mpd server in the mpd domain. ## ## ## ## Domain allowed to transition. ## ## # interface(`mpd_initrc_domtrans',` gen_require(` type mpd_initrc_exec_t; ') init_labeled_script_domtrans($1, mpd_initrc_exec_t) ') ####################################### ## ## Read mpd data files. ## ## ## ## Domain allowed access. ## ## # interface(`mpd_read_data_files',` gen_require(` type mpd_data_t; ') mpd_search_lib($1) read_files_pattern($1, mpd_data_t, mpd_data_t) ') ###################################### ## ## Create, read, write, and delete ## mpd data files. ## ## ## ## Domain allowed access. ## ## # interface(`mpd_manage_data_files',` gen_require(` type mpd_data_t; ') mpd_search_lib($1) manage_files_pattern($1, mpd_data_t, mpd_data_t) ') ######################################## ## ## Create, read, write, and delete ## mpd user data content. ## ## ## ## Domain allowed access. ## ## # interface(`mpd_manage_user_data_content',` gen_require(` type mpd_user_data_t; ') userdom_search_user_home_dirs($1) allow $1 mpd_user_data_t:dir manage_dir_perms; allow $1 mpd_user_data_t:file manage_file_perms; allow $1 mpd_user_data_t:lnk_file manage_lnk_file_perms; ') ######################################## ## ## Relabel mpd user data content. ## ## ## ## Domain allowed access. ## ## # interface(`mpd_relabel_user_data_content',` gen_require(` type mpd_user_data_t; ') userdom_search_user_home_dirs($1) allow $1 mpd_user_data_t:dir relabel_dir_perms; allow $1 mpd_user_data_t:file relabel_file_perms; allow $1 mpd_user_data_t:lnk_file relabel_lnk_file_perms; ') ######################################## ## ## Create objects in user home ## directories with the mpd user data type. ## ## ## ## Domain allowed access. ## ## ## ## ## Class of the object being created. ## ## ## ## ## The name of the object being created. ## ## # interface(`mpd_home_filetrans_user_data',` gen_require(` type mpd_user_data_t; ') userdom_user_home_dir_filetrans($1, mpd_user_data_t, $2, $3) ') ####################################### ## ## Read mpd tmpfs files. ## ## ## ## Domain allowed access. ## ## # interface(`mpd_read_tmpfs_files',` gen_require(` type mpd_tmpfs_t; ') fs_search_tmpfs($1) read_files_pattern($1, mpd_tmpfs_t, mpd_tmpfs_t) ') ################################### ## ## Create, read, write, and delete ## mpd tmpfs files. ## ## ## ## Domain allowed access. ## ## # interface(`mpd_manage_tmpfs_files',` gen_require(` type mpd_tmpfs_t; ') fs_search_tmpfs($1) manage_files_pattern($1, mpd_tmpfs_t, mpd_tmpfs_t) manage_lnk_files_pattern($1, mpd_tmpfs_t, mpd_tmpfs_t) ') ######################################## ## ## Search mpd lib directories. ## ## ## ## Domain allowed access. ## ## # interface(`mpd_search_lib',` gen_require(` type mpd_var_lib_t; ') files_search_var_lib($1) allow $1 mpd_var_lib_t:dir search_dir_perms; ') ######################################## ## ## Read mpd lib files. ## ## ## ## Domain allowed access. ## ## # interface(`mpd_read_lib_files',` gen_require(` type mpd_var_lib_t; ') files_search_var_lib($1) read_files_pattern($1, mpd_var_lib_t, mpd_var_lib_t) ') ######################################## ## ## Create, read, write, and delete ## mpd lib files. ## ## ## ## Domain allowed access. ## ## # interface(`mpd_manage_lib_files',` gen_require(` type mpd_var_lib_t; ') files_search_var_lib($1) manage_files_pattern($1, mpd_var_lib_t, mpd_var_lib_t) ') ####################################### ## ## Create specified objects in mpd ## lib directories with a private type. ## ## ## ## Domain allowed access. ## ## ## ## ## The type of the object to be created. ## ## ## ## ## The object class of the object being created. ## ## ## ## ## The name of the object being created. ## ## # interface(`mpd_var_lib_filetrans',` gen_require(` type mpd_var_lib_t; ') files_search_var_lib($1) filetrans_pattern($1, mpd_var_lib_t, $2, $3, $4) ') ######################################## ## ## Create, read, write, and delete ## mpd lib dirs. ## ## ## ## Domain allowed access. ## ## # interface(`mpd_manage_lib_dirs',` gen_require(` type mpd_var_lib_t; ') files_search_var_lib($1) manage_dirs_pattern($1, mpd_var_lib_t, mpd_var_lib_t) ') ######################################## ## ## Connect to mpd over a unix stream socket. ## ## ## ## Domain allowed access. ## ## # interface(`mpd_stream_connect',` gen_require(` type mpd_t, mpd_var_run_t; ') files_search_pids($1) stream_connect_pattern($1, mpd_var_run_t, mpd_var_run_t, mpd_t) ') ######################################## ## ## All of the rules required to ## administrate an mpd environment. ## ## ## ## Domain allowed access. ## ## ## ## ## Role allowed access. ## ## ## # interface(`mpd_admin',` gen_require(` type mpd_t, mpd_initrc_exec_t, mpd_etc_t; type mpd_data_t, mpd_log_t, mpd_var_lib_t; type mpd_tmpfs_t, mpd_tmp_t, mpd_user_data_t; ') allow $1 mpd_t:process signal_perms; ps_process_pattern($1, mpd_t) tunable_policy(`deny_ptrace',`',` allow $1 mpd_t:process ptrace; ') mpd_initrc_domtrans($1) domain_system_change_exemption($1) role_transition $2 mpd_initrc_exec_t system_r; allow $2 system_r; files_search_etc($1) admin_pattern($1, mpd_etc_t) files_search_var_lib($1) admin_pattern($1, { mpd_data_t mpd_user_data_t mpd_var_lib_t }) logging_search_logs($1) admin_pattern($1, mpd_log_t) files_search_tmp($1) admin_pattern($1, mpd_tmp_t) fs_search_tmpfs($1) admin_pattern($1, mpd_tmpfs_t) ')