Dominick Grift c4ddbf6
## <summary>Trivial file transfer protocol daemon.</summary>
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift c4ddbf6
##	Read tftp content 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(`tftp_read_content',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type tftpdir_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift c4ddbf6
	files_search_var_lib($1)
Dominick Grift 816f067
	allow $1 tftpdir_t:dir list_dir_perms;
Dominick Grift 816f067
	allow $1 tftpdir_t:file read_file_perms;
Dominick Grift 816f067
	allow $1 tftpdir_t:lnk_file read_lnk_file_perms;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift c4ddbf6
##	Create, read, write, and delete
Dominick Grift c4ddbf6
##	tftp rw 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
#
Chris PeBenito 9401ae1
interface(`tftp_manage_rw_content',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type tftpdir_rw_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_var_lib($1)
Dominick Grift 816f067
	allow $1 tftpdir_rw_t:dir manage_dir_perms;
Dominick Grift 816f067
	allow $1 tftpdir_rw_t:file manage_file_perms;
Dominick Grift 816f067
	allow $1 tftpdir_rw_t:lnk_file manage_lnk_file_perms;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift a554b9d
##	Read tftpd configuration files.
Dominick Grift a554b9d
## </summary>
Dominick Grift a554b9d
## <param name="domain">
Dominick Grift a554b9d
##	<summary>
Dominick Grift a554b9d
##	Domain allowed access.
Dominick Grift a554b9d
##	</summary>
Dominick Grift a554b9d
## </param>
Dominick Grift a554b9d
#
Dominick Grift a554b9d
interface(`tftp_read_config_files',`
Dominick Grift a554b9d
	gen_require(`
Dominick Grift a554b9d
		type tftpd_conf_t;
Dominick Grift a554b9d
	')
Dominick Grift a554b9d
Dominick Grift a554b9d
	files_search_etc($1)
Dominick Grift a554b9d
	allow $1 tftpd_conf_t:file read_file_perms;
Dominick Grift a554b9d
')
Dominick Grift a554b9d
Dominick Grift a554b9d
########################################
Dominick Grift a554b9d
## <summary>
Dominick Grift a554b9d
##	Create, read, write, and delete
Dominick Grift a554b9d
##	tftpd configuration files.
Dominick Grift dabcb6b
## </summary>
Dominick Grift dabcb6b
## <param name="domain">
Dominick Grift dabcb6b
##	<summary>
Dominick Grift dabcb6b
##	Domain allowed access.
Dominick Grift dabcb6b
##	</summary>
Dominick Grift dabcb6b
## </param>
Dominick Grift dabcb6b
#
Dominick Grift dabcb6b
interface(`tftp_manage_config_files',`
Dominick Grift dabcb6b
	gen_require(`
Dominick Grift a554b9d
		type tftpd_conf_t;
Dominick Grift dabcb6b
	')
Dominick Grift dabcb6b
Dominick Grift dabcb6b
	files_search_etc($1)
Dominick Grift a554b9d
	allow $1 tftpd_conf_t:file manage_file_perms;
Dominick Grift dabcb6b
')
Dominick Grift dabcb6b
Dominick Grift dabcb6b
########################################
Dominick Grift dabcb6b
## <summary>
Dominick Grift dabcb6b
##	Create objects in etc directories
Dominick Grift a554b9d
##	with tftp conf type.
Dominick Grift dabcb6b
## </summary>
Dominick Grift dabcb6b
## <param name="domain">
Dominick Grift dabcb6b
##	<summary>
Dominick Grift dabcb6b
##	Domain allowed to transition.
Dominick Grift dabcb6b
##	</summary>
Dominick Grift dabcb6b
## </param>
Dominick Grift dabcb6b
## <param name="object_class">
Dominick Grift dabcb6b
##	<summary>
Dominick Grift dabcb6b
##	Class of the object being created.
Dominick Grift dabcb6b
##	</summary>
Dominick Grift dabcb6b
## </param>
Dominick Grift dabcb6b
## <param name="name" optional="true">
Dominick Grift dabcb6b
##	<summary>
Dominick Grift dabcb6b
##	The name of the object being created.
Dominick Grift dabcb6b
##	</summary>
Dominick Grift dabcb6b
## </param>
Dominick Grift dabcb6b
#
Dominick Grift dabcb6b
interface(`tftp_etc_filetrans_config',`
Dominick Grift dabcb6b
	gen_require(`
Dominick Grift a554b9d
		type tftp_conf_t;
Dominick Grift dabcb6b
	')
Dominick Grift dabcb6b
Dominick Grift a554b9d
	files_etc_filetrans($1, tftp_conf_t, $2, $3)
Dominick Grift dabcb6b
')
Dominick Grift dabcb6b
Dominick Grift dabcb6b
########################################
Dominick Grift dabcb6b
## <summary>
Dominick Grift dabcb6b
##	Create objects in tftpdir directories
Dominick Grift dabcb6b
##	with a private type.
Dominick Grift dabcb6b
## </summary>
Dominick Grift dabcb6b
## <param name="domain">
Dominick Grift dabcb6b
##	<summary>
Dominick Grift dabcb6b
##	Domain allowed access.
Dominick Grift dabcb6b
##	</summary>
Dominick Grift dabcb6b
## </param>
Dominick Grift dabcb6b
## <param name="private_type">
Dominick Grift dabcb6b
##	<summary>
Dominick Grift dabcb6b
##	Private file type.
Dominick Grift dabcb6b
##	</summary>
Dominick Grift dabcb6b
## </param>
Dominick Grift dabcb6b
## <param name="object_class">
Dominick Grift dabcb6b
##	<summary>
Dominick Grift dabcb6b
##	Class of the object being created.
Dominick Grift dabcb6b
##	</summary>
Dominick Grift dabcb6b
## </param>
Dominick Grift dabcb6b
## <param name="name" optional="true">
Dominick Grift dabcb6b
##	<summary>
Dominick Grift dabcb6b
##	The name of the object being created.
Dominick Grift dabcb6b
##	</summary>
Dominick Grift dabcb6b
## </param>
Dominick Grift dabcb6b
#
Dominick Grift dabcb6b
interface(`tftp_filetrans_tftpdir',`
Dominick Grift dabcb6b
	gen_require(`
Dominick Grift dabcb6b
		type tftpdir_rw_t;
Dominick Grift dabcb6b
	')
Dominick Grift dabcb6b
Dominick Grift dabcb6b
	files_search_var_lib($1)
Dominick Grift dabcb6b
	filetrans_pattern($1, tftpdir_rw_t, $2, $3, $4)
Dominick Grift dabcb6b
')
Dominick Grift dabcb6b
Dominick Grift dabcb6b
########################################
Dominick Grift dabcb6b
## <summary>
Dominick Grift c4ddbf6
##	All of the rules required to
Dominick Grift c4ddbf6
##	administrate an tftp environment.
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(`tftp_admin',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type tftpd_t, tftpdir_t, tftpdir_rw_t, tftpd_var_run_t;
Dominick Grift a554b9d
		type tftpd_conf_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift c4ddbf6
	allow $1 tftpd_t:process { ptrace signal_perms };
Chris PeBenito 9401ae1
	ps_process_pattern($1, tftpd_t)
Chris PeBenito 9401ae1
Dominick Grift a554b9d
	files_search_etc($1)
Dominick Grift a554b9d
	admin_pattern($1, tftpd_conf_t)
Dominick Grift a554b9d
Dominick Grift c4ddbf6
	files_search_var_lib($1)
Dominick Grift c4ddbf6
	admin_pattern($1, { tftpdir_t tftpdir_rw_t })
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_list_pids($1)
Chris PeBenito 9401ae1
	admin_pattern($1, tftpd_var_run_t)
Chris PeBenito 9401ae1
')