## policy for matahari
######################################
##
## Creates types and rules for a basic
## matahari init daemon domain.
##
##
##
## Prefix for the domain.
##
##
#
template(`matahari_domain_template',`
gen_require(`
attribute matahari_domain;
')
##############################
#
# Declarations
#
type matahari_$1_t, matahari_domain;
type matahari_$1_exec_t;
init_daemon_domain(matahari_$1_t, matahari_$1_exec_t)
')
########################################
##
## Search matahari lib directories.
##
##
##
## Domain allowed access.
##
##
#
interface(`matahari_search_lib',`
gen_require(`
type matahari_var_lib_t;
')
allow $1 matahari_var_lib_t:dir search_dir_perms;
files_search_var_lib($1)
')
########################################
##
## Read matahari lib files.
##
##
##
## Domain allowed access.
##
##
#
interface(`matahari_read_lib_files',`
gen_require(`
type matahari_var_lib_t;
')
files_search_var_lib($1)
read_files_pattern($1, matahari_var_lib_t, matahari_var_lib_t)
')
########################################
##
## Create, read, write, and delete
## matahari lib files.
##
##
##
## Domain allowed access.
##
##
#
interface(`matahari_manage_lib_files',`
gen_require(`
type matahari_var_lib_t;
')
files_search_var_lib($1)
manage_files_pattern($1, matahari_var_lib_t, matahari_var_lib_t)
')
########################################
##
## Manage matahari lib dirs files.
##
##
##
## Domain allowed access.
##
##
#
interface(`matahari_manage_lib_dirs',`
gen_require(`
type matahari_var_lib_t;
')
files_search_var_lib($1)
manage_dirs_pattern($1, matahari_var_lib_t, matahari_var_lib_t)
')
########################################
##
## Read matahari PID files.
##
##
##
## Domain allowed access.
##
##
#
interface(`matahari_read_pid_files',`
gen_require(`
type matahari_var_run_t;
')
files_search_pids($1)
allow $1 matahari_var_run_t:file read_file_perms;
')
########################################
##
## Read matahari PID files.
##
##
##
## Domain allowed access.
##
##
#
interface(`matahari_manage_pid_files',`
gen_require(`
type matahari_var_run_t;
')
files_search_pids($1)
manage_files_pattern($1, matahari_var_run_t, matahari_var_run_t)
')
########################################
##
## Execute a domain transition to run matahari_hostd.
##
##
##
## Domain allowed access.
##
##
#
interface(`matahari_hostd_domtrans',`
gen_require(`
type matahari_hostd_t, matahari_hostd_exec_t;
')
domtrans_pattern($1, matahari_hostd_exec_t, matahari_hostd_t)
')
########################################
##
## Execute a domain transition to run matahari_netd.
##
##
##
## Domain allowed access.
##
##
#
interface(`matahari_netd_domtrans',`
gen_require(`
type matahari_netd_t, matahari_netd_exec_t;
')
domtrans_pattern($1, matahari_netd_exec_t, matahari_netd_t)
')
########################################
##
## Execute a domain transition to run matahari_serviced.
##
##
##
## Domain allowed access.
##
##
#
interface(`matahari_serviced_domtrans',`
gen_require(`
type matahari_serviced_t, matahari_serviced_exec_t;
')
domtrans_pattern($1, matahari_serviced_exec_t, matahari_serviced_t)
')
########################################
##
## All of the rules required to administrate
## an matahari environment
##
##
##
## Domain allowed access.
##
##
##
##
## Role allowed access.
##
##
##
#
interface(`matahari_admin',`
gen_require(`
type matahari_initrc_exec_t, matahari_hostd_t;
type matahari_netd_t, matahari_serviced_t, matahari_sysconfigd_t;
type matahari_var_lib_t, matahari_var_run_t;
')
init_labeled_script_domtrans($1, matahari_initrc_exec_t)
domain_system_change_exemption($1)
role_transition $2 matahari_initrc_exec_t system_r;
allow $2 system_r;
allow $1 matahari_netd_t:process { ptrace signal_perms };
ps_process_pattern($1, matahari_netd_t)
allow $1 matahari_hostd_t:process { ptrace signal_perms };
ps_process_pattern($1, matahari_hostd_t)
allow $1 matahari_serviced_t:process { ptrace signal_perms };
ps_process_pattern($1, matahari_serviced_t)
allow $1 matahari_sysconfigd_t:process { ptrace signal_perms };
ps_process_pattern($1, matahari_sysconfigd_t)
files_search_var_lib($1)
admin_pattern($1, matahari_var_lib_t)
files_search_pids($1)
admin_pattern($1, matahari_var_run_t)
')