1ec3d1a
policy_module(zoneminder, 1.0.0)
1ec3d1a
1ec3d1a
########################################
1ec3d1a
#
1ec3d1a
# Declarations
1ec3d1a
#
1ec3d1a
1ec3d1a
## <desc>
1ec3d1a
## 

1ec3d1a
## Allow ZoneMinder to modify public files
1ec3d1a
## used for public file transfer services.
1ec3d1a
## 

1ec3d1a
## </desc>
1ec3d1a
gen_tunable(zoneminder_anon_write, false)
1ec3d1a
1ec3d1a
type zoneminder_t;
1ec3d1a
type zoneminder_exec_t;
1ec3d1a
init_daemon_domain(zoneminder_t, zoneminder_exec_t)
1ec3d1a
1ec3d1a
type zoneminder_initrc_exec_t;
1ec3d1a
init_script_file(zoneminder_initrc_exec_t)
1ec3d1a
1ec3d1a
type zoneminder_log_t;
1ec3d1a
logging_log_file(zoneminder_log_t)
1ec3d1a
1ec3d1a
type zoneminder_tmpfs_t;
1ec3d1a
files_tmpfs_file(zoneminder_tmpfs_t)
1ec3d1a
1ec3d1a
type zoneminder_spool_t;
1ec3d1a
files_type(zoneminder_spool_t)
1ec3d1a
1ec3d1a
type zoneminder_var_lib_t;
1ec3d1a
files_type(zoneminder_var_lib_t)
1ec3d1a
1ec3d1a
type zoneminder_var_run_t;
1ec3d1a
files_pid_file(zoneminder_var_run_t)
1ec3d1a
1ec3d1a
########################################
1ec3d1a
#
1ec3d1a
# zoneminder local policy
1ec3d1a
#
1ec3d1a
allow zoneminder_t self:capability { chown dac_override };
1ec3d1a
allow zoneminder_t self:process { signal_perms setpgid };
1ec3d1a
allow zoneminder_t self:shm create_shm_perms;
1ec3d1a
allow zoneminder_t self:fifo_file rw_fifo_file_perms;
1ec3d1a
allow zoneminder_t self:unix_stream_socket { create_stream_socket_perms connectto };
1ec3d1a
1ec3d1a
manage_dirs_pattern(zoneminder_t, zoneminder_log_t, zoneminder_log_t)
1ec3d1a
manage_files_pattern(zoneminder_t, zoneminder_log_t, zoneminder_log_t)
1ec3d1a
logging_log_filetrans(zoneminder_t, zoneminder_log_t, { dir file })
1ec3d1a
1ec3d1a
manage_dirs_pattern(zoneminder_t, zoneminder_tmpfs_t, zoneminder_tmpfs_t)
1ec3d1a
manage_files_pattern(zoneminder_t, zoneminder_tmpfs_t, zoneminder_tmpfs_t)
1ec3d1a
manage_lnk_files_pattern(zoneminder_t, zoneminder_tmpfs_t, zoneminder_tmpfs_t)
1ec3d1a
fs_tmpfs_filetrans(zoneminder_t, zoneminder_tmpfs_t, { dir file lnk_file })
1ec3d1a
1ec3d1a
manage_dirs_pattern(zoneminder_t, zoneminder_var_lib_t, zoneminder_var_lib_t)
1ec3d1a
manage_files_pattern(zoneminder_t, zoneminder_var_lib_t, zoneminder_var_lib_t)
1ec3d1a
manage_sock_files_pattern(zoneminder_t, zoneminder_var_lib_t, zoneminder_var_lib_t)
1ec3d1a
files_var_lib_filetrans(zoneminder_t, zoneminder_var_lib_t, { dir file sock_file })
1ec3d1a
1ec3d1a
manage_dirs_pattern(zoneminder_t, zoneminder_var_run_t, zoneminder_var_run_t)
1ec3d1a
manage_files_pattern(zoneminder_t, zoneminder_var_run_t, zoneminder_var_run_t)
1ec3d1a
files_pid_filetrans(zoneminder_t, zoneminder_var_run_t, { dir file })
1ec3d1a
1ec3d1a
manage_dirs_pattern(zoneminder_t, zoneminder_spool_t, zoneminder_spool_t)
1ec3d1a
manage_files_pattern(zoneminder_t, zoneminder_spool_t, zoneminder_spool_t)
1ec3d1a
manage_lnk_files_pattern(zoneminder_t, zoneminder_spool_t, zoneminder_spool_t)
1ec3d1a
files_spool_filetrans(zoneminder_t, zoneminder_spool_t, { dir file })
1ec3d1a
1ec3d1a
kernel_read_system_state(zoneminder_t)
1ec3d1a
1ec3d1a
corecmd_exec_bin(zoneminder_t)
1ec3d1a
corecmd_exec_shell(zoneminder_t)
1ec3d1a
1ec3d1a
corenet_tcp_bind_http_cache_port(zoneminder_t)
1ec3d1a
corenet_tcp_bind_transproxy_port(zoneminder_t)
4ae657d
corenet_tcp_connect_http_port(zoneminder_t)
1ec3d1a
1ec3d1a
dev_read_sysfs(zoneminder_t)
1ec3d1a
dev_read_rand(zoneminder_t)
1ec3d1a
dev_read_urand(zoneminder_t)
1ec3d1a
dev_read_video_dev(zoneminder_t)
1ec3d1a
dev_write_video_dev(zoneminder_t)
1ec3d1a
1ec3d1a
1ec3d1a
auth_use_nsswitch(zoneminder_t)
1ec3d1a
1ec3d1a
logging_send_syslog_msg(zoneminder_t)
1ec3d1a
1ec3d1a
tunable_policy(`zoneminder_anon_write',`
1ec3d1a
	miscfiles_manage_public_files(zoneminder_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	mysql_stream_connect(zoneminder_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
########################################
1ec3d1a
#
1ec3d1a
# zoneminder cgi local policy
1ec3d1a
#
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	apache_content_template(zoneminder)
1ec3d1a
1ec3d1a
	# need more testing
1ec3d1a
	#allow httpd_zoneminder_script_t self:shm create_shm_perms;
1ec3d1a
1ec3d1a
	manage_sock_files_pattern(httpd_zoneminder_script_t, zoneminder_var_lib_t, zoneminder_var_lib_t)
1ec3d1a
	zoneminder_stream_connect(httpd_zoneminder_script_t)
1ec3d1a
	
1ec3d1a
	files_search_var_lib(httpd_zoneminder_script_t)
1ec3d1a
1ec3d1a
	logging_send_syslog_msg(httpd_zoneminder_script_t)
1ec3d1a
1ec3d1a
	optional_policy(`
1ec3d1a
	    	mysql_stream_connect(httpd_zoneminder_script_t)
1ec3d1a
	')
1ec3d1a
1ec3d1a
')