## <summary>Aide filesystem integrity checker.</summary>

########################################
## <summary>
##	Execute aide in the aide domain.
## </summary>
## <param name="domain">
##	<summary>
##	Domain allowed to transition.
##	</summary>
## </param>
#
interface(`aide_domtrans',`
	gen_require(`
		type aide_t, aide_exec_t;
	')

	corecmd_search_bin($1)
	domtrans_pattern($1, aide_exec_t, aide_t)
')

########################################
## <summary>
##	Execute aide programs in the AIDE
##	domain and allow the specified role
##	the AIDE domain.
## </summary>
## <param name="domain">
##	<summary>
##	Domain allowed to transition.
##	</summary>
## </param>
## <param name="role">
##	<summary>
##	Role allowed access.
##	</summary>
## </param>
#
interface(`aide_run',`
	gen_require(`
		attribute_role aide_roles;
	')

	aide_domtrans($1)
	roleattribute $2 aide_roles;
')

########################################
## <summary>
##	All of the rules required to
##	administrate an aide environment.
## </summary>
## <param name="domain">
##	<summary>
##	Domain allowed access.
##	</summary>
## </param>
## <param name="role">
##	<summary>
##	Role allowed access.
##	</summary>
## </param>
## <rolecap/>
#
interface(`aide_admin',`
	gen_require(`
		type aide_t, aide_db_t, aide_log_t;
	')

	allow $1 aide_t:process { ptrace signal_perms };
	ps_process_pattern($1, aide_t)

	aide_run($1, $2)

	files_list_etc($1)
	admin_pattern($1, aide_db_t)

	logging_list_logs($1)
	admin_pattern($1, aide_log_t)
')
