## Andrew Filesystem server
########################################
##
## Execute a domain transition to run the
## afs client.
##
##
##
## Domain allowed to transition.
##
##
#
interface(`afs_domtrans',`
gen_require(`
type afs_t, afs_exec_t;
')
corecmd_search_bin($1)
domtrans_pattern($1, afs_exec_t, afs_t)
')
########################################
##
## Read and write afs client UDP sockets.
##
##
##
## Domain allowed access.
##
##
#
interface(`afs_rw_udp_sockets',`
gen_require(`
type afs_t;
')
allow $1 afs_t:udp_socket { read write };
')
########################################
##
## read/write afs cache files
##
##
##
## Domain allowed access.
##
##
#
interface(`afs_rw_cache',`
gen_require(`
type afs_cache_t;
')
files_search_var($1)
allow $1 afs_cache_t:file { read write };
')
########################################
##
## Execute afs server in the afs domain.
##
##
##
## Domain allowed to transition.
##
##
#
interface(`afs_initrc_domtrans',`
gen_require(`
type afs_initrc_exec_t;
')
init_labeled_script_domtrans($1, afs_initrc_exec_t)
')
########################################
##
## All of the rules required to administrate
## an afs environment
##
##
##
## Domain allowed access.
##
##
##
##
## The role to be allowed to manage the afs domain.
##
##
##
#
interface(`afs_admin',`
gen_require(`
type afs_t, afs_initrc_exec_t;
')
allow $1 afs_t:process { ptrace signal_perms getattr };
read_files_pattern($1, afs_t, afs_t)
# Allow afs_admin to restart the afs service
afs_initrc_domtrans($1)
domain_system_change_exemption($1)
role_transition $2 afs_initrc_exec_t system_r;
allow $2 system_r;
')