]> git.ipfire.org Git - people/stevee/selinux-policy.git/commitdiff
Merge branch 'master' of ssh://git.fedorahosted.org/git/selinux-policy
authorMiroslav Grepl <mgrepl@redhat.com>
Fri, 23 Dec 2011 00:27:01 +0000 (00:27 +0000)
committerMiroslav Grepl <mgrepl@redhat.com>
Fri, 23 Dec 2011 00:27:01 +0000 (00:27 +0000)
policy/modules/admin/permissivedomains.te
policy/modules/apps/seunshare.te
policy/modules/services/puppet.te
policy/modules/services/rhsmcertd.te
policy/modules/services/zoneminder.fc [new file with mode: 0644]
policy/modules/services/zoneminder.if [new file with mode: 0644]
policy/modules/services/zoneminder.te [new file with mode: 0644]
policy/modules/services/zoneminder.te~ [new file with mode: 0644]

index 9c8b64f9e7fcf8fc431b87ddf93ce8e82a011624..deed25f633d4f9eaab01d394934330526966595d 100644 (file)
@@ -8,3 +8,13 @@ optional_policy(`
 
        permissive blueman_t;
 ')
+
+optional_policy(`
+       gen_require(`
+               type httpd_zoneminder_script_t, zoneminder_t;
+       ')
+
+       permissive httpd_zoneminder_script_t;
+       permissive zoneminder_t;
+')
+
index 7e6f53c77b0bd2fae6e66d4566da40361f0722f1..ecc6793021d81be6d2f0fc6a0293df7ad0c7de28 100644 (file)
@@ -33,6 +33,7 @@ files_relabelfrom_tmp_dirs(seunshare_domain)
 
 fs_manage_cgroup_dirs(seunshare_domain)
 fs_manage_cgroup_files(seunshare_domain)
+fs_unmount_all_fs(seunshare_domain)
 
 logging_send_syslog_msg(seunshare_domain)
 
index 39d23dcfe030316040806d1404050a1c7b4b176d..d70e965656230025f5c6af114d15569a47811a6a 100644 (file)
@@ -367,6 +367,7 @@ corenet_tcp_sendrecv_generic_node(puppetmaster_t)
 corenet_tcp_bind_generic_node(puppetmaster_t)
 corenet_tcp_bind_puppet_port(puppetmaster_t)
 corenet_sendrecv_puppet_server_packets(puppetmaster_t)
+corenet_tcp_connect_ntop_port(puppetmaster_t)
 
 # This needs investigation. Puppermasterd is confirmed to bind udp sockets to random high ports.
 corenet_udp_bind_generic_node(puppetmaster_t)
index 4d1d0c7ae3c5ffdda2d36cca84e39ebd163a4252..c0952a321ceb28d01734e3cb528ae6e3cba2e2a6 100644 (file)
@@ -44,14 +44,18 @@ manage_files_pattern(rhsmcertd_t, rhsmcertd_var_lib_t, rhsmcertd_var_lib_t)
 manage_dirs_pattern(rhsmcertd_t, rhsmcertd_var_run_t, rhsmcertd_var_run_t)
 manage_files_pattern(rhsmcertd_t, rhsmcertd_var_run_t, rhsmcertd_var_run_t)
 
+kernel_read_network_state(rhsmcertd_t)
 kernel_read_system_state(rhsmcertd_t)
 
+files_list_tmp(rhsmcertd_t)
+
 corecmd_exec_bin(rhsmcertd_t)
 
 dev_read_urand(rhsmcertd_t)
 
 files_read_etc_files(rhsmcertd_t)
 files_read_usr_files(rhsmcertd_t)
+files_manage_generic_locks(rhsmcertd_t)
 
 miscfiles_read_localization(rhsmcertd_t)
 miscfiles_read_certs(rhsmcertd_t)
diff --git a/policy/modules/services/zoneminder.fc b/policy/modules/services/zoneminder.fc
new file mode 100644 (file)
index 0000000..b74fadf
--- /dev/null
@@ -0,0 +1,12 @@
+
+/etc/rc\.d/init\.d/zoneminder  --      gen_context(system_u:object_r:zoneminder_initrc_exec_t,s0)
+
+/usr/bin/zmpkg.pl              --      gen_context(system_u:object_r:zoneminder_exec_t,s0)
+
+/usr/libexec/zoneminder/cgi-bin(/.*)?  gen_context(system_u:object_r:httpd_zoneminder_script_exec_t,s0)
+
+/var/lib/zoneminder(/.*)?              gen_context(system_u:object_r:zoneminder_var_lib_t,s0)
+
+/var/log/zoneminder(/.*)?              gen_context(system_u:object_r:zoneminder_log_t,s0)
+
+/var/spool/zoneminder-upload(/.*)?     gen_context(system_u:object_r:zoneminder_spool_t,s0)
diff --git a/policy/modules/services/zoneminder.if b/policy/modules/services/zoneminder.if
new file mode 100644 (file)
index 0000000..aadeef3
--- /dev/null
@@ -0,0 +1,320 @@
+
+## <summary>policy for zoneminder</summary>
+
+
+########################################
+## <summary>
+##     Transition to zoneminder.
+## </summary>
+## <param name="domain">
+## <summary>
+##     Domain allowed to transition.
+## </summary>
+## </param>
+#
+interface(`zoneminder_domtrans',`
+       gen_require(`
+               type zoneminder_t, zoneminder_exec_t;
+       ')
+
+       corecmd_search_bin($1)
+       domtrans_pattern($1, zoneminder_exec_t, zoneminder_t)
+')
+
+
+########################################
+## <summary>
+##     Execute zoneminder server in the zoneminder domain.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`zoneminder_initrc_domtrans',`
+       gen_require(`
+               type zoneminder_initrc_exec_t;
+       ')
+
+       init_labeled_script_domtrans($1, zoneminder_initrc_exec_t)
+')
+
+
+########################################
+## <summary>
+##     Read zoneminder's log files.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+## <rolecap/>
+#
+interface(`zoneminder_read_log',`
+       gen_require(`
+               type zoneminder_log_t;
+       ')
+
+       logging_search_logs($1)
+       read_files_pattern($1, zoneminder_log_t, zoneminder_log_t)
+')
+
+########################################
+## <summary>
+##     Append to zoneminder log files.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`zoneminder_append_log',`
+       gen_require(`
+               type zoneminder_log_t;
+       ')
+
+       logging_search_logs($1)
+       append_files_pattern($1, zoneminder_log_t, zoneminder_log_t)
+')
+
+########################################
+## <summary>
+##     Manage zoneminder log files
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`zoneminder_manage_log',`
+       gen_require(`
+               type zoneminder_log_t;
+       ')
+
+       logging_search_logs($1)
+       manage_dirs_pattern($1, zoneminder_log_t, zoneminder_log_t)
+       manage_files_pattern($1, zoneminder_log_t, zoneminder_log_t)
+       manage_lnk_files_pattern($1, zoneminder_log_t, zoneminder_log_t)
+')
+
+########################################
+## <summary>
+##     Search zoneminder lib directories.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`zoneminder_search_lib',`
+       gen_require(`
+               type zoneminder_var_lib_t;
+       ')
+
+       allow $1 zoneminder_var_lib_t:dir search_dir_perms;
+       files_search_var_lib($1)
+')
+
+########################################
+## <summary>
+##     Read zoneminder lib files.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`zoneminder_read_lib_files',`
+       gen_require(`
+               type zoneminder_var_lib_t;
+       ')
+
+       files_search_var_lib($1)
+       read_files_pattern($1, zoneminder_var_lib_t, zoneminder_var_lib_t)
+')
+
+########################################
+## <summary>
+##     Manage zoneminder lib files.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`zoneminder_manage_lib_files',`
+       gen_require(`
+               type zoneminder_var_lib_t;
+       ')
+
+       files_search_var_lib($1)
+       manage_files_pattern($1, zoneminder_var_lib_t, zoneminder_var_lib_t)
+')
+
+########################################
+## <summary>
+##     Manage zoneminder lib directories.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`zoneminder_manage_lib_dirs',`
+       gen_require(`
+               type zoneminder_var_lib_t;
+       ')
+
+       files_search_var_lib($1)
+       manage_dirs_pattern($1, zoneminder_var_lib_t, zoneminder_var_lib_t)
+')
+
+
+########################################
+## <summary>
+##     Search zoneminder spool directories.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`zoneminder_search_spool',`
+       gen_require(`
+               type zoneminder_spool_t;
+       ')
+
+       allow $1 zoneminder_spool_t:dir search_dir_perms;
+       files_search_spool($1)
+')
+
+########################################
+## <summary>
+##     Read zoneminder spool files.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`zoneminder_read_spool_files',`
+       gen_require(`
+               type zoneminder_spool_t;
+       ')
+
+       files_search_spool($1)
+       read_files_pattern($1, zoneminder_spool_t, zoneminder_spool_t)
+')
+
+########################################
+## <summary>
+##     Manage zoneminder spool files.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`zoneminder_manage_spool_files',`
+       gen_require(`
+               type zoneminder_spool_t;
+       ')
+
+       files_search_spool($1)
+       manage_files_pattern($1, zoneminder_spool_t, zoneminder_spool_t)
+')
+
+########################################
+## <summary>
+##     Manage zoneminder spool dirs.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`zoneminder_manage_spool_dirs',`
+       gen_require(`
+               type zoneminder_spool_t;
+       ')
+
+       files_search_spool($1)
+       manage_dirs_pattern($1, zoneminder_spool_t, zoneminder_spool_t)
+')
+
+########################################
+## <summary>
+##     Connect to zoneminder over an unix stream socket.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+#
+interface(`zoneminder_stream_connect',`
+       gen_require(`
+               type zoneminder_t, zoneminder_var_lib_t;
+       ')
+
+       files_search_pids($1)
+       stream_connect_pattern($1, zoneminder_var_lib_t, zoneminder_var_lib_t, zoneminder_t)
+')
+
+########################################
+## <summary>
+##     All of the rules required to administrate
+##     an zoneminder environment
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access.
+##     </summary>
+## </param>
+## <param name="role">
+##     <summary>
+##     Role allowed access.
+##     </summary>
+## </param>
+## <rolecap/>
+#
+interface(`zoneminder_admin',`
+       gen_require(`
+               type zoneminder_t;
+       type zoneminder_initrc_exec_t;
+       type zoneminder_log_t;
+       type zoneminder_var_lib_t;
+       type zoneminder_spool_t;
+       ')
+
+       allow $1 zoneminder_t:process { ptrace signal_perms };
+       ps_process_pattern($1, zoneminder_t)
+
+       zoneminder_initrc_domtrans($1)
+       domain_system_change_exemption($1)
+       role_transition $2 zoneminder_initrc_exec_t system_r;
+       allow $2 system_r;
+
+       logging_search_logs($1)
+       admin_pattern($1, zoneminder_log_t)
+
+       files_search_var_lib($1)
+       admin_pattern($1, zoneminder_var_lib_t)
+
+       files_search_spool($1)
+       admin_pattern($1, zoneminder_spool_t)
+
+')
+
diff --git a/policy/modules/services/zoneminder.te b/policy/modules/services/zoneminder.te
new file mode 100644 (file)
index 0000000..acd39eb
--- /dev/null
@@ -0,0 +1,64 @@
+policy_module(zoneminder, 1.0.0)
+
+########################################
+#
+# Declarations
+#
+
+type zoneminder_t;
+type zoneminder_exec_t;
+init_daemon_domain(zoneminder_t, zoneminder_exec_t)
+
+type zoneminder_initrc_exec_t;
+init_script_file(zoneminder_initrc_exec_t)
+
+type zoneminder_log_t;
+logging_log_file(zoneminder_log_t)
+
+type zoneminder_var_lib_t;
+files_type(zoneminder_var_lib_t)
+
+type zoneminder_spool_t;
+files_type(zoneminder_spool_t)
+
+########################################
+#
+# zoneminder local policy
+#
+
+allow zoneminder_t self:fifo_file rw_fifo_file_perms;
+allow zoneminder_t self:unix_stream_socket create_stream_socket_perms;
+
+manage_dirs_pattern(zoneminder_t, zoneminder_log_t, zoneminder_log_t)
+manage_files_pattern(zoneminder_t, zoneminder_log_t, zoneminder_log_t)
+logging_log_filetrans(zoneminder_t, zoneminder_log_t, { dir file })
+
+manage_dirs_pattern(zoneminder_t, zoneminder_var_lib_t, zoneminder_var_lib_t)
+manage_files_pattern(zoneminder_t, zoneminder_var_lib_t, zoneminder_var_lib_t)
+manage_sock_files_pattern(zoneminder_t, zoneminder_var_lib_t, zoneminder_var_lib_t)
+files_var_lib_filetrans(zoneminder_t, zoneminder_var_lib_t, { dir file sock_file })
+
+manage_dirs_pattern(zoneminder_t, zoneminder_spool_t, zoneminder_spool_t)
+manage_files_pattern(zoneminder_t, zoneminder_spool_t, zoneminder_spool_t)
+manage_lnk_files_pattern(zoneminder_t, zoneminder_spool_t, zoneminder_spool_t)
+files_spool_filetrans(zoneminder_t, zoneminder_spool_t, { dir file })
+
+dev_read_sysfs(zoneminder_t)
+dev_read_urand(zoneminder_t)
+
+domain_use_interactive_fds(zoneminder_t)
+
+files_read_etc_files(zoneminder_t)
+files_read_usr_files(zoneminder_t)
+
+miscfiles_read_localization(zoneminder_t)
+
+########################################
+#
+# zoneminder cgi local policy
+#
+
+apache_content_template(zoneminder)
+
+manage_sock_files_pattern(httpd_zoneminder_script_t, zoneminder_var_lib_t, zoneminder_var_lib_t)
+zoneminder_stream_connect(httpd_zoneminder_script_t)
diff --git a/policy/modules/services/zoneminder.te~ b/policy/modules/services/zoneminder.te~
new file mode 100644 (file)
index 0000000..a8e8efa
--- /dev/null
@@ -0,0 +1,69 @@
+policy_module(zoneminder, 1.0.0)
+
+########################################
+#
+# Declarations
+#
+
+type zoneminder_t;
+type zoneminder_exec_t;
+init_daemon_domain(zoneminder_t, zoneminder_exec_t)
+
+permissive zoneminder_t;
+
+type zoneminder_initrc_exec_t;
+init_script_file(zoneminder_initrc_exec_t)
+
+type zoneminder_log_t;
+logging_log_file(zoneminder_log_t)
+
+type zoneminder_var_lib_t;
+files_type(zoneminder_var_lib_t)
+
+type zoneminder_spool_t;
+files_type(zoneminder_spool_t)
+
+########################################
+#
+# zoneminder local policy
+#
+
+allow zoneminder_t self:fifo_file rw_fifo_file_perms;
+allow zoneminder_t self:unix_stream_socket create_stream_socket_perms;
+
+manage_dirs_pattern(zoneminder_t, zoneminder_log_t, zoneminder_log_t)
+manage_files_pattern(zoneminder_t, zoneminder_log_t, zoneminder_log_t)
+logging_log_filetrans(zoneminder_t, zoneminder_log_t, { dir file })
+
+manage_dirs_pattern(zoneminder_t, zoneminder_var_lib_t, zoneminder_var_lib_t)
+manage_files_pattern(zoneminder_t, zoneminder_var_lib_t, zoneminder_var_lib_t)
+manage_sock_files_pattern(zoneminder_t, zoneminder_var_lib_t, zoneminder_var_lib_t)
+files_var_lib_filetrans(zoneminder_t, zoneminder_var_lib_t, { dir file sock_file })
+
+manage_dirs_pattern(zoneminder_t, zoneminder_spool_t, zoneminder_spool_t)
+manage_files_pattern(zoneminder_t, zoneminder_spool_t, zoneminder_spool_t)
+manage_lnk_files_pattern(zoneminder_t, zoneminder_spool_t, zoneminder_spool_t)
+files_spool_filetrans(zoneminder_t, zoneminder_spool_t, { dir file })
+
+dev_read_sysfs(zoneminder_t)
+dev_read_urand(zoneminder_t)
+
+domain_use_interactive_fds(zoneminder_t)
+
+files_read_etc_files(zoneminder_t)
+files_read_usr_files(zoneminder_t)
+
+miscfiles_read_localization(zoneminder_t)
+
+########################################
+#
+# zoneminder cgi local policy
+#
+
+apache_content_template(zoneminder)
+
+permissive httpd_zoneminder_script_t;
+
+manage_sock_files_pattern(httpd_zoneminder_script_t, zoneminder_var_lib_t, zoneminder_var_lib_t)
+zoneminder_stream_connect(httpd_zoneminder_script_t)
+