######################################## # # Helper macros # # # shiftn(num,list...) # # shift the list num times # define(`shiftn',`ifelse($1,0,`shift($*)',`shiftn(decr($1),shift(shift($*)))')') ######################################## # # gen_user(username, role_set, mls_defaultlevel, mls_range) # define(`gen_user',` user $1 roles { $2 } ifdef(`enable_mls', `level $3 range $4'); ') ######################################## # # gen_con(context,mls_sensitivity,[mcs_categories]) # # MLS: Optionally put the sensitivity for the file # MCS: Optionally put the categories of the file # define(`context_template',`$1`'ifdef(`enable_mls',`:$2')`'ifdef(`enable_mcs',`:s0`'ifelse(`$3',,,`:$3')')') dnl ######################################## # # can_exec(domain,executable) # define(`can_exec',` gen_require(` class file { rx_file_perms execute_no_trans }; ') allow $1 $2:file { rx_file_perms execute_no_trans }; ') ######################################## # # gen_bool(name,default_value) # define(`gen_bool',` bool $1 dflt_or_overr(`$1'_conf,$2); ')