Chris PeBenito 17de1b
## <summary>Periodic execution of scheduled commands.</summary>
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#######################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 296273
##	The common rules for a crontab domain.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="userdomain_prefix">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	The prefix of the user domain (e.g., user
Chris PeBenito 17de1b
##	is the prefix for user_t).
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 296273
template(`cron_common_crontab_template',`
Dan Walsh 3eaa99
	gen_require(`
Dominick Grift beb9c3
		type crond_t, crond_var_run_t, crontab_exec_t;
Dominick Grift beb9c3
		type cron_spool_t, user_cron_spool_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Chris PeBenito 296273
	##############################
Chris PeBenito 296273
	#
Chris PeBenito 296273
	# Declarations
Chris PeBenito 296273
	#
Chris PeBenito 17de1b
Chris PeBenito 296273
	type $1_t;
Chris PeBenito 296273
	application_domain($1_t, crontab_exec_t)
Chris PeBenito 296273
	ubac_constrained($1_t)
Chris PeBenito 17de1b
Chris PeBenito 296273
	type $1_tmp_t;
Chris PeBenito 296273
	files_tmp_file($1_tmp_t)
Chris PeBenito 5dbda5
Chris PeBenito 17de1b
	##############################
Chris PeBenito 17de1b
	#
Chris PeBenito 296273
	# Local policy
Chris PeBenito 17de1b
	#
Chris PeBenito 17de1b
Chris PeBenito 296273
	# dac_override is to create the file in the directory under /tmp
Chris PeBenito 296273
	allow $1_t self:capability { fowner setuid setgid chown dac_override };
Chris PeBenito c61b35
	allow $1_t self:process { setsched signal_perms };
Chris PeBenito c61b35
	allow $1_t self:fifo_file rw_fifo_file_perms;
Chris PeBenito 17de1b
Dan Walsh 3eaa99
	allow $1_t crond_t:process signal;
Dan Walsh 3eaa99
	allow $1_t crond_var_run_t:file read_file_perms;
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	manage_dirs_pattern($1_t, $1_tmp_t, $1_tmp_t)
Dan Walsh 3eaa99
	manage_files_pattern($1_t, $1_tmp_t, $1_tmp_t)
Dan Walsh 3eaa99
	files_tmp_filetrans($1_t, $1_tmp_t, { dir file })
Chris PeBenito 350b6a
Chris PeBenito 296273
	# create files in /var/spool/cron
Chris PeBenito c61b35
	manage_files_pattern($1_t, { cron_spool_t user_cron_spool_t }, user_cron_spool_t)
Chris PeBenito 296273
	filetrans_pattern($1_t, cron_spool_t, user_cron_spool_t, file)
Chris PeBenito c61b35
	files_list_spool($1_t)
Chris PeBenito 350b6a
Chris PeBenito 296273
	# crontab signals crond by updating the mtime on the spooldir
Chris PeBenito 296273
	allow $1_t cron_spool_t:dir setattr;
Chris PeBenito 350b6a
Chris PeBenito 296273
	kernel_read_system_state($1_t)
Chris PeBenito 17de1b
Chris PeBenito 296273
	# for the checks used by crontab -u
Chris PeBenito 296273
	selinux_dontaudit_search_fs($1_t)
Chris PeBenito 17de1b
Chris PeBenito 296273
	fs_getattr_xattr_fs($1_t)
Chris PeBenito 17de1b
Chris PeBenito 296273
	domain_use_interactive_fds($1_t)
Chris PeBenito 17de1b
Chris PeBenito 296273
	files_read_etc_files($1_t)
Chris PeBenito c61b35
	files_read_usr_files($1_t)
Chris PeBenito 296273
	files_dontaudit_search_pids($1_t)
Chris PeBenito 17de1b
Chris PeBenito c61b35
	auth_domtrans_chk_passwd($1_t)
Chris PeBenito c61b35
Chris PeBenito 296273
	logging_send_syslog_msg($1_t)
Chris PeBenito c61b35
	logging_send_audit_msgs($1_t)
Dan Walsh 3eaa99
	logging_set_loginuid($1_t)
Chris PeBenito c61b35
Chris PeBenito c61b35
	init_dontaudit_write_utmp($1_t)
Chris PeBenito c61b35
	init_read_utmp($1_t)
Chris PeBenito 5dbda5
Chris PeBenito 296273
	miscfiles_read_localization($1_t)
Chris PeBenito 17de1b
Chris PeBenito 296273
	seutil_read_config($1_t)
Chris PeBenito 17de1b
Chris PeBenito 296273
	userdom_manage_user_tmp_dirs($1_t)
Chris PeBenito 296273
	userdom_manage_user_tmp_files($1_t)
Chris PeBenito 296273
	# Access terminals.
Chris PeBenito 296273
	userdom_use_user_terminals($1_t)
Chris PeBenito 296273
	# Read user crontabs
Chris PeBenito 296273
	userdom_read_user_home_content_files($1_t)
Dan Walsh 3eaa99
	userdom_read_user_home_content_symlinks($1_t)
Chris PeBenito 17de1b
Chris PeBenito 296273
	tunable_policy(`fcron_crond',`
Chris PeBenito 296273
		# fcron wants an instant update of a crontab change for the administrator
Chris PeBenito 296273
		# also crontab does a security check for crontab -u
Chris PeBenito 296273
		dontaudit $1_t crond_t:process signal;
Chris PeBenito 296273
	')
Chris PeBenito 17de1b
Chris PeBenito 296273
	optional_policy(`
Chris PeBenito 296273
		nscd_socket_use($1_t)
Chris PeBenito 296273
	')
Chris PeBenito 296273
')
Chris PeBenito 17de1b
Chris PeBenito 296273
########################################
Chris PeBenito 296273
## <summary>
Chris PeBenito 296273
##	Role access for cron
Chris PeBenito 296273
## </summary>
Chris PeBenito 296273
## <param name="role">
Chris PeBenito 296273
##	<summary>
Chris PeBenito 296273
##	Role allowed access
Chris PeBenito 296273
##	</summary>
Chris PeBenito 296273
## </param>
Chris PeBenito 296273
## <param name="domain">
Chris PeBenito 296273
##	<summary>
Chris PeBenito 296273
##	User domain for the role
Chris PeBenito 296273
##	</summary>
Chris PeBenito 296273
## </param>
Chris PeBenito 296273
#
Chris PeBenito 296273
interface(`cron_role',`
Chris PeBenito 296273
	gen_require(`
Chris PeBenito 296273
		type cronjob_t, crontab_t, crontab_exec_t;
Dan Walsh 3eaa99
		type user_cron_spool_t;
Dan Walsh 3eaa99
		type crond_t;
Chris PeBenito 296273
	')
Chris PeBenito 17de1b
Chris PeBenito 296273
	role $1 types { cronjob_t crontab_t };
Chris PeBenito 17de1b
Chris PeBenito 296273
	# cronjob shows up in user ps
Chris PeBenito 296273
	ps_process_pattern($2, cronjob_t)
Chris PeBenito 17de1b
Chris PeBenito 296273
	# Transition from the user domain to the derived domain.
Chris PeBenito 296273
	domtrans_pattern($2, crontab_exec_t, crontab_t)
Chris PeBenito 17de1b
Dan Walsh 3eaa99
	allow crond_t $2:process transition;
Dan Walsh 3eaa99
	dontaudit crond_t $2:process { noatsecure siginh rlimitinh };
Dan Walsh 3eaa99
	allow $2 crond_t:process sigchld;
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	# needs to be authorized SELinux context for cron
Dan Walsh 3eaa99
	allow $2 user_cron_spool_t:file entrypoint;
Dan Walsh 3eaa99
Chris PeBenito 296273
	# crontab shows up in user ps
Chris PeBenito 296273
	ps_process_pattern($2, crontab_t)
Dominick Grift dd0d45
	allow $2 crontab_t:process { ptrace signal_perms };
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	# Run helper programs as the user domain
Chris PeBenito 296273
	#corecmd_bin_domtrans(crontab_t, $2)
Chris PeBenito 296273
	#corecmd_shell_domtrans(crontab_t, $2)
Chris PeBenito 296273
	corecmd_exec_bin(crontab_t)
Chris PeBenito 296273
	corecmd_exec_shell(crontab_t)
Chris PeBenito 296273
Chris PeBenito 296273
	optional_policy(`
Chris PeBenito 296273
		gen_require(`
Chris PeBenito 296273
			class dbus send_msg;
Chris PeBenito 296273
		')
Chris PeBenito 17de1b
Chris PeBenito 296273
		dbus_stub(cronjob_t)
Chris PeBenito 296273
		allow cronjob_t $2:dbus send_msg;
Dominick Grift c5eae5
	')
Chris PeBenito 296273
')
Chris PeBenito 17de1b
Chris PeBenito 296273
########################################
Chris PeBenito 296273
## <summary>
Chris PeBenito 296273
##	Role access for unconfined cronjobs
Chris PeBenito 296273
## </summary>
Chris PeBenito 296273
## <param name="role">
Chris PeBenito 296273
##	<summary>
Chris PeBenito 296273
##	Role allowed access
Chris PeBenito 296273
##	</summary>
Chris PeBenito 296273
## </param>
Chris PeBenito 296273
## <param name="domain">
Chris PeBenito 296273
##	<summary>
Chris PeBenito 296273
##	User domain for the role
Chris PeBenito 296273
##	</summary>
Chris PeBenito 296273
## </param>
Chris PeBenito 296273
#
Chris PeBenito 296273
interface(`cron_unconfined_role',`
Chris PeBenito 296273
	gen_require(`
Dan Walsh 3eaa99
		type unconfined_cronjob_t;
Chris PeBenito 296273
	')
Chris PeBenito 17de1b
Dan Walsh 3eaa99
	role $1 types unconfined_cronjob_t;
Chris PeBenito 17de1b
Chris PeBenito 296273
	# cronjob shows up in user ps
Chris PeBenito 296273
	ps_process_pattern($2, unconfined_cronjob_t)
Dominick Grift dd0d45
	allow $2 unconfined_cronjob_t:process { ptrace signal_perms };
Chris PeBenito 17de1b
Chris PeBenito a5e213
	optional_policy(`
Chris PeBenito 296273
		gen_require(`
Chris PeBenito 296273
			class dbus send_msg;
Chris PeBenito 296273
		')
Chris PeBenito a5e213
Chris PeBenito 296273
		dbus_stub(unconfined_cronjob_t)
Chris PeBenito 296273
		allow unconfined_cronjob_t $2:dbus send_msg;
Dominick Grift c5eae5
	')
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 296273
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 296273
##	Role access for cron
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 296273
## <param name="role">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 296273
##	Role allowed access
Chris PeBenito 296273
##	</summary>
Chris PeBenito 296273
## </param>
Chris PeBenito 296273
## <param name="domain">
Chris PeBenito 296273
##	<summary>
Chris PeBenito 296273
##	User domain for the role
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 296273
interface(`cron_admin_role',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 296273
		type cronjob_t, crontab_exec_t, admin_crontab_t, admin_crontab_tmp_t;
Chris PeBenito 296273
		class passwd crontab;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 296273
	role $1 types { cronjob_t admin_crontab_t admin_crontab_tmp_t };
Chris PeBenito 17de1b
Chris PeBenito 296273
	# cronjob shows up in user ps
Chris PeBenito 296273
	ps_process_pattern($2, cronjob_t)
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	# Manipulate other users crontab.
Chris PeBenito 296273
	allow $2 self:passwd crontab;
Chris PeBenito 296273
Chris PeBenito 296273
	# Transition from the user domain to the derived domain.
Chris PeBenito 296273
	domtrans_pattern($2, crontab_exec_t, admin_crontab_t)
Chris PeBenito 296273
Chris PeBenito 296273
	# crontab shows up in user ps
Chris PeBenito 296273
	ps_process_pattern($2, admin_crontab_t)
Dominick Grift dd0d45
	allow $2 admin_crontab_t:process { ptrace signal_perms };
Chris PeBenito 296273
Chris PeBenito 296273
	# Run helper programs as the user domain
Chris PeBenito 296273
	#corecmd_bin_domtrans(admin_crontab_t, $2)
Chris PeBenito 296273
	#corecmd_shell_domtrans(admin_crontab_t, $2)
Chris PeBenito 296273
	corecmd_exec_bin(admin_crontab_t)
Chris PeBenito 296273
	corecmd_exec_shell(admin_crontab_t)
Chris PeBenito 296273
Chris PeBenito 296273
	optional_policy(`
Chris PeBenito 296273
		gen_require(`
Chris PeBenito 296273
			class dbus send_msg;
Chris PeBenito 296273
		')
Chris PeBenito 296273
Chris PeBenito 296273
		dbus_stub(admin_cronjob_t)
Chris PeBenito 296273
		allow cronjob_t $2:dbus send_msg;
Dominick Grift c5eae5
	')
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Make the specified program domain accessable
Chris PeBenito 17de1b
##	from the system cron jobs.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	The type of the process to transition to.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
## <param name="entrypoint">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	The type of the file used as an entrypoint to this domain.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`cron_system_entry',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 296273
		type crond_t, system_cronjob_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito c61b35
	domtrans_pattern(system_cronjob_t, $2, $1)
Chris PeBenito c61b35
	domtrans_pattern(crond_t, $2, $1)
Chris PeBenito 17de1b
Chris PeBenito c61b35
	role system_r types $1;
Chris PeBenito c61b35
')
Chris PeBenito 17de1b
Chris PeBenito c61b35
########################################
Chris PeBenito c61b35
## <summary>
Chris PeBenito c61b35
##	Execute cron in the cron system domain.
Chris PeBenito c61b35
## </summary>
Chris PeBenito c61b35
## <param name="domain">
Chris PeBenito c61b35
##	<summary>
Dominick Grift 288845
##	Domain allowed to transition.
Chris PeBenito c61b35
##	</summary>
Chris PeBenito c61b35
## </param>
Chris PeBenito c61b35
#
Chris PeBenito c61b35
interface(`cron_domtrans',`
Chris PeBenito c61b35
	gen_require(`
Chris PeBenito c61b35
		type system_cronjob_t, crond_exec_t;
Chris PeBenito c61b35
	')
Chris PeBenito 357390
Chris PeBenito c61b35
	domtrans_pattern($1, crond_exec_t, system_cronjob_t)
Chris PeBenito c61b35
')
Chris PeBenito c61b35
Chris PeBenito c61b35
########################################
Chris PeBenito c61b35
## <summary>
Chris PeBenito c61b35
##	Execute crond_exec_t 
Chris PeBenito c61b35
## </summary>
Chris PeBenito c61b35
## <param name="domain">
Chris PeBenito c61b35
##	<summary>
Chris PeBenito c61b35
##	Domain allowed access.
Chris PeBenito c61b35
##	</summary>
Chris PeBenito c61b35
## </param>
Chris PeBenito c61b35
#
Chris PeBenito c61b35
interface(`cron_exec',`
Chris PeBenito c61b35
	gen_require(`
Chris PeBenito c61b35
		type crond_exec_t;
Chris PeBenito c61b35
	')
Chris PeBenito c61b35
Chris PeBenito c61b35
	can_exec($1, crond_exec_t)
Chris PeBenito c61b35
')
Chris PeBenito c61b35
Chris PeBenito c61b35
########################################
Chris PeBenito c61b35
## <summary>
Chris PeBenito c61b35
##	Execute crond server in the nscd domain.
Chris PeBenito c61b35
## </summary>
Chris PeBenito c61b35
## <param name="domain">
Chris PeBenito c61b35
##	<summary>
Dominick Grift 288845
##	Domain allowed to transition.
Chris PeBenito c61b35
##	</summary>
Chris PeBenito c61b35
## </param>
Chris PeBenito c61b35
#
Chris PeBenito c61b35
interface(`cron_initrc_domtrans',`
Chris PeBenito c61b35
	gen_require(`
Chris PeBenito c61b35
		type crond_initrc_exec_t;
Chris PeBenito c61b35
	')
Chris PeBenito c61b35
Chris PeBenito c61b35
	init_labeled_script_domtrans($1, crond_initrc_exec_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Inherit and use a file descriptor
Chris PeBenito 17de1b
##	from the cron daemon.
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(`cron_use_fds',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type crond_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	allow $1 crond_t:fd use;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Send a SIGCHLD signal to the cron daemon.
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(`cron_sigchld',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type crond_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	allow $1 crond_t:process sigchld;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Read a cron daemon unnamed pipe.
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(`cron_read_pipes',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type crond_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito c0868a
	allow $1 crond_t:fifo_file read_fifo_file_perms;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Do not audit attempts to write cron daemon unnamed pipes.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift 288845
##	Domain to not audit.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`cron_dontaudit_write_pipes',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type crond_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	dontaudit $1 crond_t:fifo_file write;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Read and write a cron daemon unnamed pipe.
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(`cron_rw_pipes',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type crond_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Dan Walsh 3eaa99
	allow $1 crond_t:fifo_file rw_inherited_fifo_file_perms;
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	Read and write inherited user spool files.
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(`cron_rw_inherited_user_spool_files',`
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type user_cron_spool_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	allow $1 user_cron_spool_t:file rw_inherited_file_perms;
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	Read and write inherited spool files.
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(`cron_rw_inherited_spool_files',`
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type cron_spool_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	allow $1 cron_spool_t:file rw_inherited_file_perms;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Read, and write cron daemon TCP sockets.
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(`cron_rw_tcp_sockets',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type crond_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	allow $1 crond_t:tcp_socket { read write };
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito c61b35
##	Dontaudit Read, and write cron daemon TCP sockets.
Chris PeBenito c61b35
## </summary>
Chris PeBenito c61b35
## <param name="domain">
Chris PeBenito c61b35
##	<summary>
Dominick Grift 288845
##	Domain to not audit.
Chris PeBenito c61b35
##	</summary>
Chris PeBenito c61b35
## </param>
Chris PeBenito c61b35
#
Chris PeBenito c61b35
interface(`cron_dontaudit_rw_tcp_sockets',`
Chris PeBenito c61b35
	gen_require(`
Chris PeBenito c61b35
		type crond_t;
Chris PeBenito c61b35
	')
Chris PeBenito c61b35
Chris PeBenito c61b35
	dontaudit $1 crond_t:tcp_socket { read write };
Chris PeBenito c61b35
')
Chris PeBenito c61b35
Chris PeBenito c61b35
########################################
Chris PeBenito c61b35
## <summary>
Chris PeBenito 17de1b
##	Search the directory containing user cron tables.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift 288845
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`cron_search_spool',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type cron_spool_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_spool($1)
Chris PeBenito c0868a
	allow $1 cron_spool_t:dir search_dir_perms;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito c61b35
##	Manage pid files used by cron
Chris PeBenito c61b35
## </summary>
Chris PeBenito c61b35
## <param name="domain">
Chris PeBenito c61b35
##	<summary>
Chris PeBenito c61b35
##	Domain allowed access.
Chris PeBenito c61b35
##	</summary>
Chris PeBenito c61b35
## </param>
Chris PeBenito c61b35
#
Chris PeBenito c61b35
interface(`cron_manage_pid_files',`
Chris PeBenito c61b35
	gen_require(`
Chris PeBenito c61b35
		type crond_var_run_t;
Chris PeBenito c61b35
	')
Chris PeBenito c61b35
Chris PeBenito c61b35
	manage_files_pattern($1, crond_var_run_t, crond_var_run_t)
Chris PeBenito c61b35
')
Chris PeBenito c61b35
Chris PeBenito c61b35
########################################
Chris PeBenito c61b35
## <summary>
Chris PeBenito 4ddc7b
##	Execute anacron in the cron system domain.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Dominick Grift 288845
##	Domain allowed to transition.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`cron_anacron_domtrans_system_job',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 296273
		type system_cronjob_t, anacron_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 3f67f7
	domtrans_pattern($1, anacron_exec_t, system_cronjob_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Inherit and use a file descriptor
Chris PeBenito 17de1b
##	from system cron jobs.
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(`cron_use_system_job_fds',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 296273
		type system_cronjob_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 296273
	allow $1 system_cronjob_t:fd use;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Write a system cron job unnamed pipe.
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(`cron_write_system_job_pipes',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 296273
		type system_cronjob_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Dominick Grift 2d6615
	allow $1 system_cronjob_t:fifo_file write;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Read and write a system cron job unnamed pipe.
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(`cron_rw_system_job_pipes',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 296273
		type system_cronjob_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Dan Walsh 3eaa99
	allow $1 system_cronjob_t:fifo_file rw_inherited_fifo_file_perms;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito c61b35
##	Allow read/write unix stream sockets from the system cron jobs.
Chris PeBenito c61b35
## </summary>
Chris PeBenito c61b35
## <param name="domain">
Chris PeBenito c61b35
##	<summary>
Chris PeBenito c61b35
##	Domain allowed access.
Chris PeBenito c61b35
##	</summary>
Chris PeBenito c61b35
## </param>
Chris PeBenito c61b35
#
Chris PeBenito c61b35
interface(`cron_rw_system_job_stream_sockets',`
Chris PeBenito c61b35
	gen_require(`
Chris PeBenito c61b35
		type system_cronjob_t;
Chris PeBenito c61b35
	')
Chris PeBenito c61b35
Chris PeBenito c61b35
	allow $1 system_cronjob_t:unix_stream_socket { read write };
Chris PeBenito c61b35
')
Chris PeBenito c61b35
Chris PeBenito c61b35
########################################
Chris PeBenito c61b35
## <summary>
Chris PeBenito 17de1b
##	Read temporary files from the system cron jobs.
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(`cron_read_system_job_tmp_files',`
Chris PeBenito 17de1b
	gen_require(`
Dan Walsh 3eaa99
		type system_cronjob_tmp_t, cron_var_run_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	files_search_tmp($1)
Chris PeBenito 296273
	allow $1 system_cronjob_tmp_t:file read_file_perms;
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	files_search_pids($1)
Dan Walsh 3eaa99
	allow $1 cron_var_run_t:file read_file_perms;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Do not audit attempts to append temporary
Chris PeBenito 17de1b
##	files from the system cron jobs.
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(`cron_dontaudit_append_system_job_tmp_files',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 296273
		type system_cronjob_tmp_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito c61b35
	dontaudit $1 system_cronjob_tmp_t:file append_file_perms;
Chris PeBenito c61b35
')
Chris PeBenito c61b35
Chris PeBenito c61b35
########################################
Chris PeBenito c61b35
## <summary>
Chris PeBenito c61b35
##	Do not audit attempts to write temporary
Chris PeBenito c61b35
##	files from the system cron jobs.
Chris PeBenito c61b35
## </summary>
Chris PeBenito c61b35
## <param name="domain">
Chris PeBenito c61b35
##	<summary>
Chris PeBenito c61b35
##	Domain to not audit.
Chris PeBenito c61b35
##	</summary>
Chris PeBenito c61b35
## </param>
Chris PeBenito c61b35
#
Chris PeBenito c61b35
interface(`cron_dontaudit_write_system_job_tmp_files',`
Chris PeBenito c61b35
	gen_require(`
Chris PeBenito c61b35
		type system_cronjob_tmp_t;
Dan Walsh 3eaa99
		type cron_var_run_t;
Chris PeBenito c61b35
	')
Chris PeBenito c61b35
Chris PeBenito c61b35
	dontaudit $1 system_cronjob_tmp_t:file write_file_perms;
Dan Walsh 3eaa99
	dontaudit $1 cron_var_run_t:file write_file_perms;
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	Read temporary files from the system cron jobs.
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(`cron_read_system_job_lib_files',`
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type system_cronjob_var_lib_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dominick Grift c5eae5
	read_files_pattern($1, system_cronjob_var_lib_t, system_cronjob_var_lib_t)
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	Manage files from the system cron jobs.
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(`cron_manage_system_job_lib_files',`
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type system_cronjob_var_lib_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dominick Grift c5eae5
	manage_files_pattern($1, system_cronjob_var_lib_t, system_cronjob_var_lib_t)
Chris PeBenito 17de1b
')