Chris PeBenito 17de1b
## <summary>Policy for SELinux policy and userland applications.</summary>
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#######################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute checkpolicy in the checkpolicy domain.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_domtrans_checkpolicy',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type checkpolicy_t, checkpolicy_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_usr($1)
Chris PeBenito 17de1b
	corecmd_search_bin($1)
Chris PeBenito 3f67f7
	domtrans_pattern($1, checkpolicy_exec_t, checkpolicy_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute checkpolicy in the checkpolicy domain, and
Chris PeBenito 17de1b
##	allow the specified role the checkpolicy domain,
Chris PeBenito 17de1b
##	and use the caller's terminal.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
## <param name="role">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito a7ee7f
##	Role allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_run_checkpolicy',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type checkpolicy_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	seutil_domtrans_checkpolicy($1)
Chris PeBenito 17de1b
	role $2 types checkpolicy_t;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute checkpolicy in the caller domain.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_exec_checkpolicy',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type checkpolicy_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_usr($1)
Chris PeBenito 17de1b
	corecmd_search_bin($1)
Chris PeBenito 3f67f7
	can_exec($1, checkpolicy_exec_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#######################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute load_policy in the load_policy domain.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_domtrans_loadpolicy',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type load_policy_t, load_policy_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 8021cb
	corecmd_search_bin($1)
Chris PeBenito 3f67f7
	domtrans_pattern($1, load_policy_exec_t, load_policy_t)
Dan Walsh 8c8a10
Dan Walsh 8c8a10
	ifdef(`hide_broken_symptoms', `
Dan Walsh 8c8a10
		dontaudit load_policy_t $1:socket_class_set { read write };
Dan Walsh 8c8a10
	')
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute load_policy in the load_policy domain, and
Chris PeBenito 17de1b
##	allow the specified role the load_policy domain,
Chris PeBenito 17de1b
##	and use the caller's terminal.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
## <param name="role">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito a7ee7f
##	Role allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_run_loadpolicy',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type load_policy_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	seutil_domtrans_loadpolicy($1)
Chris PeBenito 17de1b
	role $2 types load_policy_t;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute load_policy in the caller domain.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_exec_loadpolicy',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type load_policy_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 8021cb
	corecmd_search_bin($1)
Chris PeBenito 3f67f7
	can_exec($1, load_policy_exec_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Read the load_policy program file.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_read_loadpolicy',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type load_policy_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 8021cb
	corecmd_search_bin($1)
Chris PeBenito c0868a
	allow $1 load_policy_exec_t:file read_file_perms;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#######################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 296273
##	Execute newrole in the newole domain.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_domtrans_newrole',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type newrole_t, newrole_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_usr($1)
Chris PeBenito 17de1b
	corecmd_search_bin($1)
Chris PeBenito 3f67f7
	domtrans_pattern($1, newrole_exec_t, newrole_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute newrole in the newrole domain, and
Chris PeBenito 17de1b
##	allow the specified role the newrole domain,
Chris PeBenito 17de1b
##	and use the caller's terminal.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
## <param name="role">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito a7ee7f
##	Role allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_run_newrole',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type newrole_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	seutil_domtrans_newrole($1)
Chris PeBenito 17de1b
	role $2 types newrole_t;
Chris PeBenito c2b87f
Chris PeBenito 296273
	auth_run_upd_passwd(newrole_t, $2)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute newrole in the caller domain.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_exec_newrole',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type newrole_t, newrole_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_usr($1)
Chris PeBenito 17de1b
	corecmd_search_bin($1)
Chris PeBenito 3f67f7
	can_exec($1, newrole_exec_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Do not audit the caller attempts to send
Chris PeBenito 17de1b
##	a signal to newrole.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain to not audit.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_dontaudit_signal_newrole',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type newrole_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	dontaudit $1 newrole_t:process signal;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Send a SIGCHLD signal to newrole.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito b675ce
## <desc>
Chris PeBenito b675ce
##	

Chris PeBenito b675ce
##	Allow the specified domain to send a SIGCHLD
Chris PeBenito b675ce
##	signal to newrole.  This signal is automatically
Chris PeBenito b675ce
##	sent from a process that is terminating to
Chris PeBenito b675ce
##	its parent.  This may be needed by domains
Chris PeBenito b675ce
##	that are executed from newrole.
Chris PeBenito b675ce
##	

Chris PeBenito b675ce
## </desc>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito b675ce
## <infoflow type="write" weight="1"/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_sigchld_newrole',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type newrole_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	allow $1 newrole_t:process sigchld;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Inherit and use newrole file descriptors.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_use_newrole_fds',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type newrole_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	allow $1 newrole_t:fd use;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 296273
########################################
Chris PeBenito 296273
## <summary>
Chris PeBenito 296273
##	Do not audit attempts to inherit and use
Chris PeBenito 296273
##	newrole file descriptors.
Chris PeBenito 296273
## </summary>
Chris PeBenito 296273
## <param name="domain">
Chris PeBenito 296273
##	<summary>
Chris PeBenito 296273
##	Domain to not audit.
Chris PeBenito 296273
##	</summary>
Chris PeBenito 296273
## </param>
Chris PeBenito 296273
#
Chris PeBenito 296273
interface(`seutil_dontaudit_use_newrole_fds',`
Chris PeBenito 296273
	gen_require(`
Chris PeBenito 296273
		type newrole_t;
Chris PeBenito 296273
	')
Chris PeBenito 296273
Chris PeBenito 296273
	dontaudit $1 newrole_t:fd use;
Chris PeBenito 296273
')
Chris PeBenito 296273
Chris PeBenito 17de1b
#######################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 762d2c
##	Execute restorecon in the restorecon domain.  (Deprecated)
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_domtrans_restorecon',`
Chris PeBenito 762d2c
	refpolicywarn(`$0($*) has been deprecated, please use seutil_domtrans_setfiles() instead.')
Chris PeBenito 762d2c
	seutil_domtrans_setfiles($1)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute restorecon in the restorecon domain, and
Chris PeBenito 17de1b
##	allow the specified role the restorecon domain,
Chris PeBenito 762d2c
##	and use the caller's terminal.  (Deprecated)
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
## <param name="role">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito a7ee7f
##	Role allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_run_restorecon',`
Chris PeBenito 762d2c
	refpolicywarn(`$0($*) has been deprecated, please use seutil_run_setfiles() instead.')
Chris PeBenito 296273
	seutil_run_setfiles($1,$2)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 762d2c
##	Execute restorecon in the caller domain.  (Deprecated)
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_exec_restorecon',`
Chris PeBenito 762d2c
	refpolicywarn(`$0($*) has been deprecated, please use seutil_exec_setfiles() instead.')
Chris PeBenito 762d2c
	seutil_exec_setfiles($1)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Dan Walsh 3eaa99
##	Execute restorecond in the caller domain. 
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
## <rolecap/>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`seutil_exec_restorecond',`
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type restorecond_exec_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	files_search_usr($1)
Dan Walsh 3eaa99
	corecmd_search_bin($1)
Dan Walsh 3eaa99
	can_exec($1, restorecond_exec_t)
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Chris PeBenito 17de1b
##	Execute run_init in the run_init domain.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_domtrans_runinit',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type run_init_t, run_init_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_usr($1)
Chris PeBenito 8021cb
	corecmd_search_bin($1)
Chris PeBenito 3f67f7
	domtrans_pattern($1, run_init_exec_t, run_init_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute init scripts in the run_init domain.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <desc>
Chris PeBenito 17de1b
##	

Chris PeBenito 17de1b
##	Execute init scripts in the run_init domain.
Chris PeBenito 17de1b
##	This is used for the Gentoo integrated run_init.
Chris PeBenito 17de1b
##	

Chris PeBenito 17de1b
## </desc>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_init_script_domtrans_runinit',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type run_init_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 3f67f7
	init_script_file_domtrans($1, run_init_t)
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	allow run_init_t $1:fd use;
Chris PeBenito 17de1b
	allow run_init_t $1:fifo_file rw_file_perms;
Chris PeBenito 17de1b
	allow run_init_t $1:process sigchld;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute run_init in the run_init domain, and
Chris PeBenito 17de1b
##	allow the specified role the run_init domain,
Chris PeBenito 17de1b
##	and use the caller's terminal.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
## <param name="role">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito a7ee7f
##	Role allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_run_runinit',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type run_init_t;
Chris PeBenito 17de1b
		role system_r;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 296273
	auth_run_chk_passwd(run_init_t, $2)
Chris PeBenito 17de1b
	seutil_domtrans_runinit($1)
Chris PeBenito 17de1b
	role $2 types run_init_t;
Chris PeBenito 296273
Chris PeBenito 17de1b
	allow $2 system_r;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute init scripts in the run_init domain, and
Chris PeBenito 17de1b
##	allow the specified role the run_init domain,
Chris PeBenito 17de1b
##	and use the caller's terminal.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <desc>
Chris PeBenito 17de1b
##	

Chris PeBenito 17de1b
##	Execute init scripts in the run_init domain, and
Chris PeBenito 17de1b
##	allow the specified role the run_init domain,
Chris PeBenito 17de1b
##	and use the caller's terminal.
Chris PeBenito 17de1b
##	

Chris PeBenito 17de1b
##	

Chris PeBenito 17de1b
##	This is used for the Gentoo integrated run_init.
Chris PeBenito 17de1b
##	

Chris PeBenito 17de1b
## </desc>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
## <param name="role">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito a7ee7f
##	Role allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_init_script_run_runinit',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type run_init_t;
Chris PeBenito 17de1b
		role system_r;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 296273
	auth_run_chk_passwd(run_init_t, $2)
Chris PeBenito 17de1b
	seutil_init_script_domtrans_runinit($1)
Chris PeBenito 17de1b
	role $2 types run_init_t;
Chris PeBenito 296273
Chris PeBenito 17de1b
	allow $2 system_r;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Inherit and use run_init file descriptors.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_use_runinit_fds',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type run_init_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	allow $1 run_init_t:fd use;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute setfiles in the setfiles domain.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_domtrans_setfiles',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type setfiles_t, setfiles_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_usr($1)
Chris PeBenito 8021cb
	corecmd_search_bin($1)
Chris PeBenito 3f67f7
	domtrans_pattern($1, setfiles_exec_t, setfiles_t)
Dan Walsh c71f02
Dan Walsh c71f02
	ifdef(`hide_broken_symptoms', `
Dan Walsh 8c8a10
		dontaudit setfiles_t $1:socket_class_set { read write };
Dan Walsh c71f02
	')
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute setfiles in the setfiles domain, and
Chris PeBenito 17de1b
##	allow the specified role the setfiles domain,
Chris PeBenito 17de1b
##	and use the caller's terminal.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
## <param name="role">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito a7ee7f
##	Role allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_run_setfiles',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type setfiles_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	seutil_domtrans_setfiles($1)
Chris PeBenito 17de1b
	role $2 types setfiles_t;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Dan Walsh 3eaa99
##	Execute setfiles in the setfiles domain.
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`seutil_domtrans_setfiles_mac',`
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type setfiles_mac_t, setfiles_exec_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	files_search_usr($1)
Dan Walsh 3eaa99
	corecmd_search_bin($1)
Dan Walsh 3eaa99
	domtrans_pattern($1, setfiles_exec_t, setfiles_mac_t)
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	Execute setfiles in the setfiles_mac domain, and
Dan Walsh 3eaa99
##	allow the specified role the setfiles_mac domain,
Dan Walsh 3eaa99
##	and use the caller's terminal.
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
## <param name="role">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	The role to be allowed the setfiles_mac domain.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
## <rolecap/>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`seutil_run_setfiles_mac',`
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type setfiles_mac_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	seutil_domtrans_setfiles_mac($1)
Dan Walsh 3eaa99
	role $2 types setfiles_mac_t;
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Chris PeBenito 17de1b
##	Execute setfiles in the caller domain.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_exec_setfiles',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type setfiles_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_usr($1)
Chris PeBenito 8021cb
	corecmd_search_bin($1)
Chris PeBenito 3f67f7
	can_exec($1, setfiles_exec_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Do not audit attempts to search the SELinux
Chris PeBenito 17de1b
##	configuration directory (/etc/selinux).
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain to not audit.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_dontaudit_search_config',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type selinux_config_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 932c35
	dontaudit $1 selinux_config_t:dir search_dir_perms;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Do not audit attempts to read the SELinux
Chris PeBenito 17de1b
##	userland configuration (/etc/selinux).
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain to not audit.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_dontaudit_read_config',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type selinux_config_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 932c35
	dontaudit $1 selinux_config_t:dir search_dir_perms;
Chris PeBenito 932c35
	dontaudit $1 selinux_config_t:file read_file_perms;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Read the general SELinux configuration files.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_read_config',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type selinux_config_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Chris PeBenito c0868a
	allow $1 selinux_config_t:dir list_dir_perms;
Chris PeBenito 3f67f7
	read_files_pattern($1, selinux_config_t, selinux_config_t)
Chris PeBenito 3f67f7
	read_lnk_files_pattern($1, selinux_config_t, selinux_config_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito d5ae68
########################################
Chris PeBenito d5ae68
## <summary>
Chris PeBenito d5ae68
##	Read and write the general SELinux configuration files.
Chris PeBenito d5ae68
## </summary>
Chris PeBenito d5ae68
## <param name="domain">
Chris PeBenito d5ae68
##	<summary>
Chris PeBenito d5ae68
##	Domain allowed access.
Chris PeBenito d5ae68
##	</summary>
Chris PeBenito d5ae68
## </param>
Chris PeBenito d5ae68
## <rolecap/>
Chris PeBenito d5ae68
#
Chris PeBenito d5ae68
interface(`seutil_rw_config',`
Chris PeBenito d5ae68
	gen_require(`
Chris PeBenito d5ae68
		type selinux_config_t;
Chris PeBenito d5ae68
	')
Chris PeBenito d5ae68
Chris PeBenito d5ae68
	files_search_etc($1)
Chris PeBenito d5ae68
	allow $1 selinux_config_t:dir list_dir_perms;
Chris PeBenito 3f67f7
	rw_files_pattern($1, selinux_config_t, selinux_config_t)
Chris PeBenito d5ae68
')
Chris PeBenito d5ae68
Chris PeBenito 17de1b
#######################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Create, read, write, and delete
Chris PeBenito 53da70
##	the general selinux configuration files.  (Deprecated)
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 53da70
## <desc>
Chris PeBenito 53da70
##	

Chris PeBenito 53da70
##	Create, read, write, and delete
Chris PeBenito 53da70
##	the general selinux configuration files.
Chris PeBenito 53da70
##	

Chris PeBenito 53da70
##	

Chris PeBenito 53da70
##	This interface has been deprecated, please
Chris PeBenito 53da70
##	use the seutil_manage_config() interface instead.
Chris PeBenito 53da70
##	

Chris PeBenito 53da70
## </desc>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_manage_selinux_config',`
Chris PeBenito 6073ea
	refpolicywarn(`$0($*) has been deprecated. Please use seutil_manage_config() instead.')
Chris PeBenito 53da70
	seutil_manage_config($1)
Chris PeBenito 53da70
')
Chris PeBenito 53da70
Chris PeBenito 53da70
#######################################
Chris PeBenito 53da70
## <summary>
Chris PeBenito 53da70
##	Create, read, write, and delete
Chris PeBenito 53da70
##	the general selinux configuration files.
Chris PeBenito 53da70
## </summary>
Chris PeBenito 53da70
## <param name="domain">
Chris PeBenito 53da70
##	<summary>
Chris PeBenito 53da70
##	Domain allowed access.
Chris PeBenito 53da70
##	</summary>
Chris PeBenito 53da70
## </param>
Chris PeBenito 53da70
## <rolecap/>
Chris PeBenito 53da70
#
Chris PeBenito 53da70
interface(`seutil_manage_config',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type selinux_config_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Dan Walsh 3eaa99
	manage_dirs_pattern($1, selinux_config_t, selinux_config_t)
Chris PeBenito 3f67f7
	manage_files_pattern($1, selinux_config_t, selinux_config_t)
Chris PeBenito 3f67f7
	read_lnk_files_pattern($1, selinux_config_t, selinux_config_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 582438
#######################################
Chris PeBenito 582438
## <summary>
Chris PeBenito 582438
##	Create, read, write, and delete
Chris PeBenito 582438
##	the general selinux configuration files.
Chris PeBenito 582438
## </summary>
Chris PeBenito 582438
## <param name="domain">
Chris PeBenito 582438
##	<summary>
Chris PeBenito 582438
##	Domain allowed access.
Chris PeBenito 582438
##	</summary>
Chris PeBenito 582438
## </param>
Chris PeBenito 582438
## <rolecap/>
Chris PeBenito 582438
#
Chris PeBenito 582438
interface(`seutil_manage_config_dirs',`
Chris PeBenito 582438
	gen_require(`
Chris PeBenito 582438
		type selinux_config_t;
Chris PeBenito 582438
	')
Chris PeBenito 582438
Chris PeBenito 582438
	files_search_etc($1)
Chris PeBenito 582438
	allow $1 selinux_config_t:dir manage_dir_perms;
Chris PeBenito 582438
')
Chris PeBenito 582438
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Search the policy directory with default_context files.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_search_default_contexts',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type selinux_config_t, default_context_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Chris PeBenito 3f67f7
	search_dirs_pattern($1, selinux_config_t, default_context_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Read the default_contexts files.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_read_default_contexts',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type selinux_config_t, default_context_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Chris PeBenito 4bc6e3
	allow $1 selinux_config_t:dir search_dir_perms;
Chris PeBenito 4bc6e3
	allow $1 default_context_t:dir list_dir_perms;
Chris PeBenito 3f67f7
	read_files_pattern($1, default_context_t, default_context_t)
Chris PeBenito 4bc6e3
')
Chris PeBenito 4bc6e3
Chris PeBenito 4bc6e3
########################################
Chris PeBenito 4bc6e3
## <summary>
Chris PeBenito 4bc6e3
##	Create, read, write, and delete the default_contexts files.
Chris PeBenito 4bc6e3
## </summary>
Chris PeBenito 4bc6e3
## <param name="domain">
Chris PeBenito 4bc6e3
##	<summary>
Chris PeBenito 4bc6e3
##	Domain allowed access.
Chris PeBenito 4bc6e3
##	</summary>
Chris PeBenito 4bc6e3
## </param>
Chris PeBenito 4bc6e3
#
Chris PeBenito 4bc6e3
interface(`seutil_manage_default_contexts',`
Chris PeBenito 4bc6e3
	gen_require(`
Chris PeBenito 4bc6e3
		type selinux_config_t, default_context_t;
Chris PeBenito 4bc6e3
	')
Chris PeBenito 4bc6e3
Chris PeBenito 4bc6e3
	files_search_etc($1)
Chris PeBenito 4bc6e3
	allow $1 selinux_config_t:dir search_dir_perms;
Chris PeBenito 3f67f7
	manage_files_pattern($1, default_context_t, default_context_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Read the file_contexts files.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_read_file_contexts',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito c0868a
		type selinux_config_t, default_context_t, file_context_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Chris PeBenito c0868a
	allow $1 { selinux_config_t default_context_t }:dir search_dir_perms;
Chris PeBenito 3f67f7
	read_files_pattern($1, file_context_t, file_context_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 04d286
##	Do not audit attempts to read the file_contexts files.
Chris PeBenito 04d286
## </summary>
Chris PeBenito 04d286
## <param name="domain">
Chris PeBenito 04d286
##	<summary>
Dominick Grift a0546c
##	Domain to not audit.
Chris PeBenito 04d286
##	</summary>
Chris PeBenito 04d286
## </param>
Chris PeBenito 04d286
## <rolecap/>
Chris PeBenito 04d286
#
Chris PeBenito 04d286
interface(`seutil_dontaudit_read_file_contexts',`
Chris PeBenito 04d286
	gen_require(`
Chris PeBenito 04d286
		type selinux_config_t, default_context_t, file_context_t;
Chris PeBenito 04d286
	')
Chris PeBenito 04d286
Chris PeBenito 04d286
	dontaudit $1 { selinux_config_t default_context_t file_context_t }:dir search_dir_perms;
Chris PeBenito 04d286
	dontaudit $1 file_context_t:file read_file_perms;
Chris PeBenito 04d286
')
Chris PeBenito 04d286
Chris PeBenito 04d286
########################################
Chris PeBenito 04d286
## <summary>
Chris PeBenito 17de1b
##	Read and write the file_contexts files.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_rw_file_contexts',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 8f3a0a
		type selinux_config_t, file_context_t, default_context_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Chris PeBenito c0868a
	allow $1 { selinux_config_t default_context_t }:dir search_dir_perms;
Chris PeBenito 3f67f7
	rw_files_pattern($1, file_context_t, file_context_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Create, read, write, and delete the file_contexts files.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_manage_file_contexts',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 8f3a0a
		type selinux_config_t, file_context_t, default_context_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Chris PeBenito 4bc6e3
	allow $1 { selinux_config_t default_context_t }:dir search_dir_perms;
Chris PeBenito 3f67f7
	manage_files_pattern($1, file_context_t, file_context_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Read the SELinux binary policy.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_read_bin_policy',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type selinux_config_t, policy_config_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Chris PeBenito c0868a
	allow $1 selinux_config_t:dir search_dir_perms;
Chris PeBenito 3f67f7
	read_files_pattern($1, policy_config_t, policy_config_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Create the SELinux binary policy.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_create_bin_policy',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
#		attribute can_write_binary_policy;
Chris PeBenito 17de1b
		type selinux_config_t, policy_config_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Chris PeBenito c0868a
	allow $1 selinux_config_t:dir search_dir_perms;
Chris PeBenito 3f67f7
	create_files_pattern($1, policy_config_t, policy_config_t)
Chris PeBenito 3f67f7
	write_files_pattern($1, policy_config_t, policy_config_t)
Chris PeBenito 17de1b
#	typeattribute $1 can_write_binary_policy;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Allow the caller to relabel a file to the binary policy type.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_relabelto_bin_policy',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		attribute can_relabelto_binary_policy;
Chris PeBenito 17de1b
		type policy_config_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	allow $1 policy_config_t:file relabelto;
Chris PeBenito 17de1b
	typeattribute $1 can_relabelto_binary_policy;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Create, read, write, and delete the SELinux
Chris PeBenito 17de1b
##	binary policy.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_manage_bin_policy',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		attribute can_write_binary_policy;
Chris PeBenito 17de1b
		type selinux_config_t, policy_config_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Chris PeBenito c0868a
	allow $1 selinux_config_t:dir search_dir_perms;
Chris PeBenito 3f67f7
	manage_files_pattern($1, policy_config_t, policy_config_t)
Chris PeBenito 17de1b
	typeattribute $1 can_write_binary_policy;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Read SELinux policy source files.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_read_src_policy',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type selinux_config_t, policy_src_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Chris PeBenito 3f67f7
	list_dirs_pattern($1, selinux_config_t, policy_src_t)
Chris PeBenito 3f67f7
	read_files_pattern($1, policy_src_t, policy_src_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Create, read, write, and delete SELinux
Chris PeBenito 17de1b
##	policy source files.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_manage_src_policy',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type selinux_config_t, policy_src_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Chris PeBenito c0868a
	allow $1 selinux_config_t:dir search_dir_perms;
Chris PeBenito 3f67f7
	manage_dirs_pattern($1, policy_src_t, policy_src_t)
Chris PeBenito 3f67f7
	manage_files_pattern($1, policy_src_t, policy_src_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute a domain transition to run semanage.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_domtrans_semanage',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type semanage_t, semanage_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_usr($1)
Chris PeBenito 17de1b
	corecmd_search_bin($1)
Chris PeBenito 3f67f7
	domtrans_pattern($1, semanage_exec_t, semanage_t)
Dan Walsh 8c8a10
Dan Walsh 8c8a10
	ifdef(`hide_broken_symptoms', `
Dan Walsh 8c8a10
		dontaudit semanage_t $1:socket_class_set { read write };
Dan Walsh 8c8a10
	')
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Dan Walsh 3eaa99
##	Execute a domain transition to run setsebool.
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	Domain allowed to transition.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`seutil_domtrans_setsebool',`
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type setsebool_t, setsebool_exec_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	files_search_usr($1)
Dan Walsh 3eaa99
	corecmd_search_bin($1)
Dan Walsh 3eaa99
	domtrans_pattern($1, setsebool_exec_t, setsebool_t)
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Chris PeBenito 17de1b
##	Execute semanage in the semanage domain, and
Chris PeBenito 17de1b
##	allow the specified role the semanage domain,
Chris PeBenito 17de1b
##	and use the caller's terminal.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift a0546c
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
## <param name="role">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito a7ee7f
##	Role allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito bbcd3c
## <rolecap/>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_run_semanage',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type semanage_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	seutil_domtrans_semanage($1)
Chris PeBenito 296273
	seutil_run_setfiles(semanage_t, $2)
Chris PeBenito 296273
	seutil_run_loadpolicy(semanage_t, $2)
Chris PeBenito 17de1b
	role $2 types semanage_t;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Dan Walsh 3eaa99
##	Execute setsebool in the semanage domain, and
Dan Walsh 3eaa99
##	allow the specified role the semanage domain,
Dan Walsh 3eaa99
##	and use the caller's terminal.
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
## <param name="role">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	The role to be allowed the setsebool domain.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
## <rolecap/>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`seutil_run_setsebool',`
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type semanage_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	seutil_domtrans_setsebool($1)
Dan Walsh 3eaa99
	role $2 types setsebool_t;
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	Full management of the semanage
Dan Walsh 3eaa99
##	module store.
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`seutil_read_module_store',`
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type selinux_config_t, semanage_store_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	files_search_etc($1)
Dan Walsh 3eaa99
	list_dirs_pattern($1, selinux_config_t, semanage_store_t)
Dan Walsh 3eaa99
	read_files_pattern($1, semanage_store_t, semanage_store_t)
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Chris PeBenito 17de1b
##	Full management of the semanage
Chris PeBenito 17de1b
##	module store.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_manage_module_store',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type selinux_config_t, semanage_store_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Chris PeBenito 3f67f7
	manage_dirs_pattern($1, selinux_config_t, semanage_store_t)
Chris PeBenito 3f67f7
	manage_files_pattern($1, semanage_store_t, semanage_store_t)
Chris PeBenito 3f67f7
	filetrans_pattern($1, selinux_config_t, semanage_store_t, dir)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#######################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Get read lock on module store
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_get_semanage_read_lock',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type selinux_config_t, semanage_read_lock_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Chris PeBenito 3f67f7
	rw_files_pattern($1, selinux_config_t, semanage_read_lock_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#######################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Get trans lock on module store
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`seutil_get_semanage_trans_lock',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type selinux_config_t, semanage_trans_lock_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_etc($1)
Chris PeBenito 3f67f7
	rw_files_pattern($1, selinux_config_t, semanage_trans_lock_t)
Chris PeBenito 17de1b
')
Chris PeBenito eeef8d
Chris PeBenito eeef8d
########################################
Chris PeBenito eeef8d
## <summary>
Chris PeBenito eeef8d
##	SELinux-enabled program access for
Chris PeBenito eeef8d
##	libselinux-linked programs.
Chris PeBenito eeef8d
## </summary>
Chris PeBenito eeef8d
## <desc>
Chris PeBenito eeef8d
##	

Chris PeBenito eeef8d
##	SELinux-enabled programs are typically
Chris PeBenito eeef8d
##	linked to the libselinux library.  This
Chris PeBenito eeef8d
##	interface will allow access required for
Chris PeBenito eeef8d
##	the libselinux constructor to function.
Chris PeBenito eeef8d
##	

Chris PeBenito eeef8d
## </desc>
Chris PeBenito eeef8d
## <param name="domain">
Chris PeBenito eeef8d
##	<summary>
Chris PeBenito eeef8d
##	Domain allowed access.
Chris PeBenito eeef8d
##	</summary>
Chris PeBenito eeef8d
## </param>
Chris PeBenito eeef8d
#
Chris PeBenito eeef8d
interface(`seutil_libselinux_linked',`
Chris PeBenito eeef8d
	selinux_get_fs_mount($1)
Chris PeBenito eeef8d
	seutil_read_config($1)
Chris PeBenito eeef8d
')
Chris PeBenito eeef8d
Chris PeBenito eeef8d
########################################
Chris PeBenito eeef8d
## <summary>
Chris PeBenito eeef8d
##	Do not audit SELinux-enabled program access for
Chris PeBenito eeef8d
##	libselinux-linked programs.
Chris PeBenito eeef8d
## </summary>
Chris PeBenito eeef8d
## <desc>
Chris PeBenito eeef8d
##	

Chris PeBenito eeef8d
##	SELinux-enabled programs are typically
Chris PeBenito eeef8d
##	linked to the libselinux library.  This
Chris PeBenito eeef8d
##	interface will dontaudit access required for
Chris PeBenito eeef8d
##	the libselinux constructor to function.
Chris PeBenito eeef8d
##	

Chris PeBenito eeef8d
##	

Chris PeBenito eeef8d
##	Generally this should not be used on anything
Chris PeBenito eeef8d
##	but simple SELinux-enabled programs that do not
Chris PeBenito eeef8d
##	rely on data initialized by the libselinux
Chris PeBenito eeef8d
##	constructor.
Chris PeBenito eeef8d
##	

Chris PeBenito eeef8d
## </desc>
Chris PeBenito eeef8d
## <param name="domain">
Chris PeBenito eeef8d
##	<summary>
Dominick Grift a0546c
##	Domain to not audit.
Chris PeBenito eeef8d
##	</summary>
Chris PeBenito eeef8d
## </param>
Chris PeBenito eeef8d
#
Chris PeBenito eeef8d
interface(`seutil_dontaudit_libselinux_linked',`
Chris PeBenito eeef8d
	selinux_dontaudit_get_fs_mount($1)
Chris PeBenito eeef8d
	seutil_dontaudit_read_config($1)
Chris PeBenito eeef8d
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
#######################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	All rules necessary to run semanage command
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`seutil_semanage_policy',`
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type semanage_tmp_t;
Dan Walsh 3eaa99
		type policy_config_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
	allow $1 self:capability { dac_override sys_resource };
Dan Walsh 3eaa99
	dontaudit $1 self:capability sys_tty_config;
Dan Walsh 3eaa99
	allow $1 self:process signal;
Dan Walsh 3eaa99
	allow $1 self:unix_stream_socket create_stream_socket_perms;
Dan Walsh 3eaa99
	allow $1 self:unix_dgram_socket create_socket_perms;
Dan Walsh 3eaa99
	logging_send_audit_msgs($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	# Running genhomedircon requires this for finding all users
Dan Walsh 3eaa99
	auth_use_nsswitch($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	allow $1 policy_config_t:file { read write };
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	allow $1 semanage_tmp_t:dir manage_dir_perms;
Dan Walsh 3eaa99
	allow $1 semanage_tmp_t:file manage_file_perms;
Dan Walsh 3eaa99
	files_tmp_filetrans($1, semanage_tmp_t, { file dir })
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	kernel_read_system_state($1)
Dan Walsh 3eaa99
	kernel_read_kernel_sysctls($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	corecmd_exec_bin($1)
Dan Walsh 3eaa99
	corecmd_exec_shell($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	dev_read_urand($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	domain_use_interactive_fds($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	files_read_etc_files($1)
Dan Walsh 3eaa99
	files_read_etc_runtime_files($1)
Dan Walsh 3eaa99
	files_read_usr_files($1)
Dan Walsh 3eaa99
	files_list_pids($1)
Dan Walsh 3eaa99
	fs_list_inotifyfs($1)
Dan Walsh 3eaa99
	fs_getattr_all_fs($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	mls_file_write_all_levels($1)
Dan Walsh 3eaa99
	mls_file_read_all_levels($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	selinux_getattr_fs($1)
Dan Walsh 3eaa99
	selinux_validate_context($1)
Dan Walsh 3eaa99
	selinux_get_enforce_mode($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	term_use_all_terms($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	locallogin_use_fds($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	logging_send_syslog_msg($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	miscfiles_read_localization($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	seutil_search_default_contexts($1)
Dan Walsh 3eaa99
	seutil_domtrans_loadpolicy($1)
Dan Walsh 3eaa99
	seutil_read_config($1)
Dan Walsh 3eaa99
	seutil_manage_bin_policy($1)
Dan Walsh 3eaa99
	seutil_use_newrole_fds($1)
Dan Walsh 3eaa99
	seutil_manage_module_store($1)
Dan Walsh 3eaa99
	seutil_get_semanage_trans_lock($1)
Dan Walsh 3eaa99
	seutil_get_semanage_read_lock($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	userdom_dontaudit_write_user_home_content_files($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
Dan Walsh 3eaa99
#######################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	All rules necessary to run setfiles command
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`seutil_setfiles',`
Dan Walsh 3eaa99
Dan Walsh 3eaa99
allow $1 self:capability { dac_override dac_read_search fowner };
Dan Walsh 3eaa99
dontaudit $1 self:capability sys_tty_config;
Dan Walsh 3eaa99
allow $1 self:fifo_file rw_file_perms;
Dan Walsh 3eaa99
dontaudit $1 self:dir relabelfrom;
Dan Walsh 3eaa99
dontaudit $1 self:file relabelfrom;
Dan Walsh 3eaa99
dontaudit $1 self:lnk_file relabelfrom;
Dan Walsh 3eaa99
Dan Walsh 3eaa99
Dan Walsh 3eaa99
allow $1 { policy_src_t policy_config_t file_context_t default_context_t }:dir list_dir_perms;
Dan Walsh 3eaa99
allow $1 { policy_src_t policy_config_t file_context_t default_context_t }:file read_file_perms;
Dan Walsh 3eaa99
allow $1 { policy_src_t policy_config_t file_context_t default_context_t }:lnk_file { read_lnk_file_perms ioctl lock };
Dan Walsh 3eaa99
Dan Walsh 3eaa99
logging_send_audit_msgs($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
kernel_read_system_state($1)
Dan Walsh 3eaa99
kernel_relabelfrom_unlabeled_dirs($1)
Dan Walsh 3eaa99
kernel_relabelfrom_unlabeled_files($1)
Dan Walsh 3eaa99
kernel_relabelfrom_unlabeled_symlinks($1)
Dan Walsh 3eaa99
kernel_relabelfrom_unlabeled_pipes($1)
Dan Walsh 3eaa99
kernel_relabelfrom_unlabeled_sockets($1)
Dan Walsh 3eaa99
kernel_use_fds($1)
Dan Walsh 3eaa99
kernel_rw_pipes($1)
Dan Walsh 3eaa99
kernel_rw_unix_dgram_sockets($1)
Dan Walsh 3eaa99
kernel_dontaudit_list_all_proc($1)
Dan Walsh 3eaa99
kernel_read_all_sysctls($1)
Dan Walsh 3eaa99
kernel_read_network_state_symlinks($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
dev_relabel_all_dev_nodes($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
domain_use_interactive_fds($1)
Dan Walsh 3eaa99
domain_read_all_domains_state($1)
Dan Walsh 3eaa99
 
Dan Walsh 3eaa99
files_read_etc_runtime_files($1)
Dan Walsh 3eaa99
files_read_etc_files($1)
Dan Walsh 3eaa99
files_list_all($1)
Dan Walsh 3eaa99
files_relabel_all_files($1)
Dan Walsh 3eaa99
files_list_isid_type_dirs($1)
Dan Walsh 3eaa99
files_read_isid_type_files($1)
Dan Walsh 3eaa99
files_dontaudit_read_all_symlinks($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
fs_getattr_xattr_fs($1)
Dan Walsh 3eaa99
fs_list_all($1)
Dan Walsh 3eaa99
fs_getattr_all_files($1)
Dan Walsh 3eaa99
fs_search_auto_mountpoints($1)
Dan Walsh 3eaa99
fs_relabelfrom_noxattr_fs($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
mls_file_read_all_levels($1)
Dan Walsh 3eaa99
mls_file_write_all_levels($1)
Dan Walsh 3eaa99
mls_file_upgrade($1)
Dan Walsh 3eaa99
mls_file_downgrade($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
selinux_validate_context($1)
Dan Walsh 3eaa99
selinux_compute_access_vector($1)
Dan Walsh 3eaa99
selinux_compute_create_context($1)
Dan Walsh 3eaa99
selinux_compute_relabel_context($1)
Dan Walsh 3eaa99
selinux_compute_user_contexts($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
term_use_all_terms($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
# this is to satisfy the assertion:
Dan Walsh 3eaa99
auth_relabelto_shadow($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
init_use_fds($1)
Dan Walsh 3eaa99
init_use_script_fds($1)
Dan Walsh 3eaa99
init_use_script_ptys($1)
Dan Walsh 3eaa99
init_exec_script_files($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
logging_send_syslog_msg($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
miscfiles_read_localization($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
seutil_libselinux_linked($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
userdom_use_all_users_fds($1)
Dan Walsh 3eaa99
# for config files in a home directory
Dan Walsh 3eaa99
userdom_read_user_home_content_files($1)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
ifdef(`distro_debian',`
Dan Walsh 3eaa99
	# udev tmpfs is populated with static device nodes
Dan Walsh 3eaa99
	# and then relabeled afterwards; thus
Dan Walsh 3eaa99
	# /dev/console has the tmpfs type
Dan Walsh 3eaa99
	fs_rw_tmpfs_chr_files($1)
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
ifdef(`distro_redhat',`
Dan Walsh 3eaa99
	fs_rw_tmpfs_chr_files($1)
Dan Walsh 3eaa99
	fs_rw_tmpfs_blk_files($1)
Dan Walsh 3eaa99
	fs_relabel_tmpfs_blk_file($1)
Dan Walsh 3eaa99
	fs_relabel_tmpfs_chr_file($1)
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
ifdef(`distro_ubuntu',`
Dan Walsh 3eaa99
	optional_policy(`
Dan Walsh 3eaa99
		unconfined_domain($1)
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
optional_policy(`
Dan Walsh 3eaa99
	hotplug_use_fds($1)
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
')