Dominick Grift d20ab32
## <summary>Postfix email server.</summary>
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Chris PeBenito 9401ae1
##	Postfix stub interface.  No access allowed.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain" unused="true">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_stub',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_master_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Dominick Grift d20ab32
#######################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	The template to define a postfix domain.
Chris PeBenito 9401ae1
## </summary>
Dominick Grift d20ab32
## <param name="domain_prefix">
Chris PeBenito 9401ae1
##	<summary>
Dominick Grift d20ab32
##	Domain prefix to be used.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
template(`postfix_domain_template',`
Dominick Grift d20ab32
	gen_require(`
Dominick Grift d20ab32
		attribute postfix_domain;
Dominick Grift d20ab32
	')
Dominick Grift d20ab32
Dominick Grift d20ab32
	########################################
Dominick Grift d20ab32
	#
Dominick Grift d20ab32
	# Declarations
Dominick Grift d20ab32
	#
Dominick Grift d20ab32
Dominick Grift d20ab32
	type postfix_$1_t, postfix_domain;
Chris PeBenito 9401ae1
	type postfix_$1_exec_t;
Chris PeBenito 9401ae1
	domain_type(postfix_$1_t)
Chris PeBenito 9401ae1
	domain_entry_file(postfix_$1_t, postfix_$1_exec_t)
Chris PeBenito 9401ae1
	role system_r types postfix_$1_t;
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	########################################
Dominick Grift d20ab32
	#
Dominick Grift d20ab32
	# Policy
Dominick Grift d20ab32
	#
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	can_exec(postfix_$1_t, postfix_$1_exec_t)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	auth_use_nsswitch(postfix_$1_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Dominick Grift d20ab32
#######################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	The template to define a postfix server domain.
Chris PeBenito 9401ae1
## </summary>
Dominick Grift d20ab32
## <param name="domain_prefix">
Chris PeBenito 9401ae1
##	<summary>
Dominick Grift d20ab32
##	Domain prefix to be used.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
template(`postfix_server_domain_template',`
Dominick Grift d20ab32
	gen_require(`
Dominick Grift d20ab32
		attribute postfix_server_domain, postfix_server_tmp_content;
Dominick Grift d20ab32
	')
Dominick Grift d20ab32
Dominick Grift d20ab32
	########################################
Dominick Grift d20ab32
	#
Dominick Grift d20ab32
	# Declarations
Dominick Grift d20ab32
	#
Dominick Grift d20ab32
Chris PeBenito 9401ae1
	postfix_domain_template($1)
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	typeattribute postfix_$1_t postfix_server_domain;
Dominick Grift d20ab32
Dominick Grift d20ab32
	type postfix_$1_tmp_t, postfix_server_tmp_content;
Chris PeBenito 9401ae1
	files_tmp_file(postfix_$1_tmp_t)
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	########################################
Dominick Grift d20ab32
	#
Dominick Grift d20ab32
	# Declarations
Dominick Grift d20ab32
	#
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	manage_dirs_pattern(postfix_$1_t, postfix_$1_tmp_t, postfix_$1_tmp_t)
Chris PeBenito 9401ae1
	manage_files_pattern(postfix_$1_t, postfix_$1_tmp_t, postfix_$1_tmp_t)
Chris PeBenito 9401ae1
	files_tmp_filetrans(postfix_$1_t, postfix_$1_tmp_t, { file dir })
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	domtrans_pattern(postfix_master_t, postfix_$1_exec_t, postfix_$1_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Dominick Grift d20ab32
#######################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	The template to define a postfix user domain.
Chris PeBenito 9401ae1
## </summary>
Dominick Grift d20ab32
## <param name="domain_prefix">
Chris PeBenito 9401ae1
##	<summary>
Dominick Grift d20ab32
##	Domain prefix to be used.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
template(`postfix_user_domain_template',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		attribute postfix_user_domains, postfix_user_domtrans;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	########################################
Dominick Grift d20ab32
	#
Dominick Grift d20ab32
	# Declarations
Dominick Grift d20ab32
	#
Dominick Grift d20ab32
Chris PeBenito 9401ae1
	postfix_domain_template($1)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	typeattribute postfix_$1_t postfix_user_domains;
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	########################################
Dominick Grift d20ab32
	#
Dominick Grift d20ab32
	# Policy
Dominick Grift d20ab32
	#
Dominick Grift d20ab32
Chris PeBenito 9401ae1
	allow postfix_$1_t self:capability dac_override;
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	domtrans_pattern(postfix_user_domtrans, postfix_$1_exec_t, postfix_$1_t)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	domain_use_interactive_fds(postfix_$1_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	Read postfix configuration content.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <rolecap/>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_read_config',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_etc_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_etc($1)
Dominick Grift d20ab32
	allow $1 postfix_etc_t:dir list_dir_perms;
Dominick Grift d20ab32
	allow $1 postfix_etc_t:file read_file_perms;
Dominick Grift d20ab32
	allow $1 postfix_etc_t:lnk_file read_lnk_file_perms;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	Create specified object in postfix
Dominick Grift d20ab32
##	etc directories with a type transition.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <param name="private type">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	The type of the object to be created.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <param name="object">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	The object class of the object being created.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Dominick Grift d20ab32
## <param name="name" optional="true">
Dominick Grift d20ab32
##	<summary>
Dominick Grift d20ab32
##	The name of the object being created.
Dominick Grift d20ab32
##	</summary>
Dominick Grift d20ab32
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_config_filetrans',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_etc_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	filetrans_pattern($1, postfix_etc_t, $2, $3, $4)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Chris PeBenito 9401ae1
##	Do not audit attempts to read and
Chris PeBenito 9401ae1
##	write postfix local delivery
Chris PeBenito 9401ae1
##	TCP sockets.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain to not audit.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_dontaudit_rw_local_tcp_sockets',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_local_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	dontaudit $1 postfix_local_t:tcp_socket { read write };
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	Read and write postfix local pipes.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_rw_local_pipes',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_local_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	allow $1 postfix_local_t:fifo_file rw_fifo_file_perms;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	Read postfix local process state files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_read_local_state',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_local_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	kernel_search_proc($1)
Dominick Grift d20ab32
	allow $1 postfix_local_t:dir list_dir_perms;
Dominick Grift d20ab32
	allow $1 postfix_local_t:file read_file_perms;
Dominick Grift d20ab32
	allow $1 postfix_local_t:lnk_file read_lnk_file_perms;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 025bf31
##	Read and write inherited postfix master pipes.
Dominick Grift 025bf31
## </summary>
Dominick Grift 025bf31
## <param name="domain">
Dominick Grift 025bf31
##	<summary>
Dominick Grift 025bf31
##	Domain allowed access.
Dominick Grift 025bf31
##	</summary>
Dominick Grift 025bf31
## </param>
Dominick Grift 025bf31
#
Dominick Grift 025bf31
interface(`postfix_rw_inherited_master_pipes',`
Dominick Grift 025bf31
	gen_require(`
Dominick Grift 025bf31
		type postfix_master_t;
Dominick Grift 025bf31
	')
Dominick Grift 025bf31
Dominick Grift 025bf31
	allow $1 postfix_master_t:fd use;
Dominick Grift 025bf31
	allow $1 postfix_master_t:fifo_file { getattr write append lock ioctl read };
Dominick Grift 025bf31
')
Dominick Grift 025bf31
Dominick Grift 025bf31
########################################
Dominick Grift 025bf31
## <summary>
Dominick Grift d20ab32
##	Read postfix master process state files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_read_master_state',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_master_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	kernel_search_proc($1)
Dominick Grift d20ab32
	allow $1 postfix_master_t:dir list_dir_perms;
Dominick Grift d20ab32
	allow $1 postfix_master_t:file read_file_perms;
Dominick Grift d20ab32
	allow $1 postfix_master_t:lnk_file read_lnk_file_perms;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 025bf31
##	Use postfix master file descriptors.
Dominick Grift 025bf31
## </summary>
Dominick Grift 025bf31
## <param name="domain">
Dominick Grift 025bf31
##	<summary>
Dominick Grift 025bf31
##	Domain allowed access.
Dominick Grift 025bf31
##	</summary>
Dominick Grift 025bf31
## </param>
Dominick Grift 025bf31
#
Dominick Grift 025bf31
interface(`postfix_use_fds_master',`
Dominick Grift 025bf31
	gen_require(`
Dominick Grift 025bf31
		type postfix_master_t;
Dominick Grift 025bf31
	')
Dominick Grift 025bf31
Dominick Grift 025bf31
	allow $1 postfix_master_t:fd use;
Dominick Grift 025bf31
')
Dominick Grift 025bf31
Dominick Grift 025bf31
########################################
Dominick Grift 025bf31
## <summary>
Chris PeBenito 9401ae1
##	Do not audit attempts to use
Chris PeBenito 9401ae1
##	postfix master process file
Chris PeBenito 9401ae1
##	file descriptors.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain to not audit.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_dontaudit_use_fds',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_master_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	dontaudit $1 postfix_master_t:fd use;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Chris PeBenito 9401ae1
##	Execute postfix_map in the postfix_map domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_domtrans_map',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_map_t, postfix_map_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	domtrans_pattern($1, postfix_map_exec_t, postfix_map_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	Execute postfix map in the postfix
Dominick Grift d20ab32
##	map domain, and allow the specified
Dominick Grift d20ab32
##	role the postfix_map domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <param name="role">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Role allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <rolecap/>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_run_map',`
Chris PeBenito 9401ae1
	gen_require(`
Dominick Grift d20ab32
		attribute_role postfix_map_roles;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	postfix_domtrans_map($1)
Dominick Grift d20ab32
	roleattribute $2 postfix_map_roles;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	Execute the master postfix program
Dominick Grift d20ab32
##	in the postfix_master domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_domtrans_master',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_master_t, postfix_master_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	domtrans_pattern($1, postfix_master_exec_t, postfix_master_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	Execute the master postfix program
Dominick Grift d20ab32
##	in the caller domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_exec_master',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_master_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	can_exec($1, postfix_master_exec_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
#######################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	Connect to postfix master process
Dominick Grift d20ab32
##	using a unix domain stream socket.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <rolecap/>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_stream_connect_master',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_master_t, postfix_public_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	stream_connect_pattern($1, postfix_public_t, postfix_public_t, postfix_master_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 7b53a1b
##	Read and write postfix master
Dominick Grift d20ab32
##	unnamed pipes.  (Deprecated)
Dominick Grift 7b53a1b
## </summary>
Dominick Grift 7b53a1b
## <param name="domain">
Dominick Grift 7b53a1b
##	<summary>
Dominick Grift 7b53a1b
##	Domain allowed access.
Dominick Grift 7b53a1b
##	</summary>
Dominick Grift 7b53a1b
## </param>
Dominick Grift 7b53a1b
#
Dominick Grift 7b53a1b
interface(`postfix_rw_master_pipes',`
Dominick Grift e4c16ac
	refpolicywarn(`$0($*) has been deprecated, use postfix_rw_inherited_master_pipes() instead.')
Dominick Grift e4c16ac
	postfix_rw_inherited_master_pipes($1)
Dominick Grift 7b53a1b
')
Dominick Grift 7b53a1b
Dominick Grift 7b53a1b
########################################
Dominick Grift 7b53a1b
## <summary>
Chris PeBenito 9401ae1
##	Execute the master postdrop in the
Dominick Grift d20ab32
##	postfix postdrop domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_domtrans_postdrop',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_postdrop_t, postfix_postdrop_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	domtrans_pattern($1, postfix_postdrop_exec_t, postfix_postdrop_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Chris PeBenito 9401ae1
##	Execute the master postqueue in the
Dominick Grift d20ab32
##	postfix postqueue domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_domtrans_postqueue',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_postqueue_t, postfix_postqueue_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	domtrans_pattern($1, postfix_postqueue_exec_t, postfix_postqueue_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
#######################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	Execute the master postqueue in
Dominick Grift d20ab32
##	the caller domain.  (Deprecated)
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`posftix_exec_postqueue',`
Sven Vermeulen 64d7b30
	refpolicywarn(`$0($*) has been deprecated.')
Sven Vermeulen 64d7b30
	postfix_exec_postqueue($1)
Sven Vermeulen 64d7b30
')
Sven Vermeulen 64d7b30
Sven Vermeulen 64d7b30
#######################################
Sven Vermeulen 64d7b30
## <summary>
Dominick Grift d20ab32
##	Execute postfix postqueue in
Dominick Grift d20ab32
##	the caller domain.
Sven Vermeulen 64d7b30
## </summary>
Sven Vermeulen 64d7b30
## <param name="domain">
Sven Vermeulen 64d7b30
##	<summary>
Sven Vermeulen 64d7b30
##	Domain allowed access.
Sven Vermeulen 64d7b30
##	</summary>
Sven Vermeulen 64d7b30
## </param>
Sven Vermeulen 64d7b30
#
Sven Vermeulen 64d7b30
interface(`postfix_exec_postqueue',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_postqueue_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	can_exec($1, postfix_postqueue_exec_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	Create postfix private sock files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_create_private_sockets',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_private_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	create_sock_files_pattern($1, postfix_private_t, postfix_private_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	Create, read, write, and delete
Dominick Grift d20ab32
##	postfix private sock files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_manage_private_sockets',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_private_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	manage_sock_files_pattern($1, postfix_private_t, postfix_private_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	Execute the smtp postfix program
Dominick Grift d20ab32
##	in the postfix smtp domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_domtrans_smtp',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_smtp_t, postfix_smtp_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift d20ab32
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	domtrans_pattern($1, postfix_smtp_exec_t, postfix_smtp_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	Get attributes of all postfix mail
Dominick Grift bdbe670
##	spool files.
Dominick Grift bdbe670
## </summary>
Dominick Grift bdbe670
## <param name="domain">
Dominick Grift bdbe670
##	<summary>
Dominick Grift bdbe670
##	Domain allowed access.
Dominick Grift bdbe670
##	</summary>
Dominick Grift bdbe670
## </param>
Dominick Grift bdbe670
#
Dominick Grift bdbe670
interface(`postfix_getattr_all_spool_files',`
Dominick Grift bdbe670
	gen_require(`
Dominick Grift bdbe670
		attribute postfix_spool_type;
Dominick Grift bdbe670
	')
Dominick Grift bdbe670
Dominick Grift bdbe670
	files_search_spool($1)
Dominick Grift bdbe670
	getattr_files_pattern($1, postfix_spool_type, postfix_spool_type)
Dominick Grift bdbe670
')
Dominick Grift bdbe670
Dominick Grift bdbe670
########################################
Dominick Grift bdbe670
## <summary>
Chris PeBenito 9401ae1
##	Search postfix mail spool directories.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_search_spool',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_spool_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_spool($1)
Dominick Grift d20ab32
	allow $1 postfix_spool_t:dir search_dir_perms;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Chris PeBenito 9401ae1
##	List postfix mail spool directories.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_list_spool',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_spool_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_spool($1)
Dominick Grift d20ab32
	allow $1 postfix_spool_t:dir list_dir_perms;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Chris PeBenito 9401ae1
##	Read postfix mail spool files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_read_spool_files',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_spool_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_spool($1)
Chris PeBenito 9401ae1
	read_files_pattern($1, postfix_spool_t, postfix_spool_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift d20ab32
##	Create, read, write, and delete
Dominick Grift d20ab32
##	postfix mail spool files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_manage_spool_files',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type postfix_spool_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_spool($1)
Chris PeBenito 9401ae1
	manage_files_pattern($1, postfix_spool_t, postfix_spool_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Chris PeBenito 9401ae1
##	Execute postfix user mail programs
Chris PeBenito 9401ae1
##	in their respective domains.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`postfix_domtrans_user_mail_handler',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		attribute postfix_user_domtrans;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	typeattribute $1 postfix_user_domtrans;
Chris PeBenito 9401ae1
')
Dominick Grift d20ab32
Dominick Grift d20ab32
########################################
Dominick Grift d20ab32
## <summary>
Dominick Grift d20ab32
##	All of the rules required to
Dominick Grift d20ab32
##	administrate an postfix environment.
Dominick Grift d20ab32
## </summary>
Dominick Grift d20ab32
## <param name="domain">
Dominick Grift d20ab32
##	<summary>
Dominick Grift d20ab32
##	Domain allowed access.
Dominick Grift d20ab32
##	</summary>
Dominick Grift d20ab32
## </param>
Dominick Grift d20ab32
## <param name="role">
Dominick Grift d20ab32
##	<summary>
Dominick Grift d20ab32
##	Role allowed access.
Dominick Grift d20ab32
##	</summary>
Dominick Grift d20ab32
## </param>
Dominick Grift d20ab32
## <rolecap/>
Dominick Grift d20ab32
#
Dominick Grift d20ab32
interface(`postfix_admin',`
Dominick Grift d20ab32
	gen_require(`
Dominick Grift d20ab32
		attribute postfix_domain, postfix_spool_type, postfix_server_tmp_content;
Dominick Grift d20ab32
		type postfix_initrc_exec_t, postfix_prng_t, postfix_etc_t;
Dominick Grift d20ab32
		type postfix_data_t, postfix_var_run_t, postfix_public_t;
Dominick Grift d20ab32
		type postfix_private_t, postfix_map_tmp_t, postfix_exec_t;
Dominick Grift d20ab32
	')
Dominick Grift d20ab32
Dominick Grift d20ab32
	allow $1 postfix_domain:process { ptrace signal_perms };
Dominick Grift d20ab32
	ps_process_pattern($1, postfix_domain)
Dominick Grift d20ab32
Dominick Grift d20ab32
	init_labeled_script_domtrans($1, postfix_initrc_exec_t)
Dominick Grift d20ab32
	domain_system_change_exemption($1)
Dominick Grift d20ab32
	role_transition $2 postfix_initrc_exec_t system_r;
Dominick Grift d20ab32
	allow $2 system_r;
Dominick Grift d20ab32
Dominick Grift d20ab32
	files_search_etc($1)
Dominick Grift d20ab32
	admin_pattern($1, { postfix_prng_t postfix_etc_t postfix_exec_t })
Dominick Grift d20ab32
Dominick Grift d20ab32
	files_search_spool($1)
Dominick Grift d20ab32
	admin_pattern($1, { postfix_public_t postfix_private_t postfix_spool_type })
Dominick Grift d20ab32
Dominick Grift d20ab32
	files_search_var_lib($1)
Dominick Grift d20ab32
	admin_pattern($1, postfix_data_t)
Dominick Grift d20ab32
Dominick Grift d20ab32
	files_search_pids($1)
Dominick Grift d20ab32
	admin_pattern($1, postfix_var_run_t)
Dominick Grift d20ab32
Dominick Grift d20ab32
	files_search_tmp($1)
Dominick Grift d20ab32
	admin_pattern($1, { postfix_server_tmp_content postfix_map_tmp_t })
Dominick Grift d20ab32
Dominick Grift d20ab32
	postfix_run_map($1, $2)
Dominick Grift d20ab32
')