diff --git a/refpolicy/Changelog b/refpolicy/Changelog index 810a7a4..3fd456f 100644 --- a/refpolicy/Changelog +++ b/refpolicy/Changelog @@ -10,6 +10,7 @@ distcc lpd networkmanager + pegasus xdm * Wed Oct 19 2005 Chris PeBenito - 20051019 diff --git a/refpolicy/policy/modules/kernel/kernel.if b/refpolicy/policy/modules/kernel/kernel.if index cd7d478..ad4a432 100644 --- a/refpolicy/policy/modules/kernel/kernel.if +++ b/refpolicy/policy/modules/kernel/kernel.if @@ -297,7 +297,7 @@ interface(`kernel_dontaudit_read_ring_buffer',` ## Change the level of kernel messages logged to the console. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_change_ring_buffer_level',` @@ -785,7 +785,7 @@ interface(`kernel_read_device_sysctl',` ## Read and write device sysctls. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_rw_device_sysctl',` @@ -800,10 +800,27 @@ interface(`kernel_rw_device_sysctl',` ######################################## ## +## Allow caller to search virtual memory sysctls. +## +## +## Domain allowed access. +## +## +# +interface(`kernel_search_vm_sysctl',` + gen_require(` + type proc_t, sysctl_t, sysctl_vm_t; + ') + + allow $1 { proc_t sysctl_t sysctl_vm_t }:dir search_dir_perms; +') + +######################################## +## ## Allow caller to read virtual memory sysctls. ## ## -## The type of the process performing this action. +## Domain allowed access. ## ## # @@ -822,7 +839,7 @@ interface(`kernel_read_vm_sysctl',` ## Read and write virtual memory sysctls. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_rw_vm_sysctl',` @@ -872,7 +889,7 @@ interface(`kernel_dontaudit_search_network_sysctl',` ## Allow caller to read network sysctls. ## ## -## The type of the process performing this action. +## Domain allowed access. ## ## # @@ -892,7 +909,7 @@ interface(`kernel_read_net_sysctl',` ## Allow caller to modiry contents of sysctl network files. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_rw_net_sysctl',` @@ -914,7 +931,7 @@ interface(`kernel_rw_net_sysctl',` ## socket sysctls. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_read_unix_sysctl',` @@ -936,7 +953,7 @@ interface(`kernel_read_unix_sysctl',` ## socket sysctls. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_rw_unix_sysctl',` @@ -957,7 +974,7 @@ interface(`kernel_rw_unix_sysctl',` ## Read the hotplug sysctl. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_read_hotplug_sysctl',` @@ -978,7 +995,7 @@ interface(`kernel_read_hotplug_sysctl',` ## Read and write the hotplug sysctl. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_rw_hotplug_sysctl',` @@ -999,7 +1016,7 @@ interface(`kernel_rw_hotplug_sysctl',` ## Read the modprobe sysctl. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_read_modprobe_sysctl',` @@ -1020,7 +1037,7 @@ interface(`kernel_read_modprobe_sysctl',` ## Read and write the modprobe sysctl. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_rw_modprobe_sysctl',` @@ -1057,7 +1074,7 @@ interface(`kernel_dontaudit_search_kernel_sysctl',` ## Read generic kernel sysctls. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_read_kernel_sysctl',` @@ -1095,7 +1112,7 @@ interface(`kernel_dontaudit_write_kernel_sysctl',` ## Read and write generic kernel sysctls. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_rw_kernel_sysctl',` @@ -1116,7 +1133,7 @@ interface(`kernel_rw_kernel_sysctl',` ## Read filesystem sysctls. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_read_fs_sysctl',` @@ -1137,7 +1154,7 @@ interface(`kernel_read_fs_sysctl',` ## Read and write fileystem sysctls. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_rw_fs_sysctl',` @@ -1158,7 +1175,7 @@ interface(`kernel_rw_fs_sysctl',` ## Read IRQ sysctls. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_read_irq_sysctl',` @@ -1178,7 +1195,7 @@ interface(`kernel_read_irq_sysctl',` ## Read and write IRQ sysctls. ## ## -## The type of the process performing this action. +## Domain allowed access. ## ## # @@ -1233,7 +1250,7 @@ interface(`kernel_rw_rpc_sysctl',` ## Allow caller to read all sysctls. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_read_all_sysctl',` @@ -1256,7 +1273,7 @@ interface(`kernel_read_all_sysctl',` ## Read and write all sysctls. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_rw_all_sysctl',` @@ -1279,7 +1296,7 @@ interface(`kernel_rw_all_sysctl',` ## Send a kill signal to unlabeled processes. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_kill_unlabeled',` @@ -1296,7 +1313,7 @@ interface(`kernel_kill_unlabeled',` ## Send general signals to unlabeled processes. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_signal_unlabeled',` @@ -1313,7 +1330,7 @@ interface(`kernel_signal_unlabeled',` ## Send a null signal to unlabeled processes. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_signull_unlabeled',` @@ -1330,7 +1347,7 @@ interface(`kernel_signull_unlabeled',` ## Send a stop signal to unlabeled processes. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_sigstop_unlabeled',` @@ -1347,7 +1364,7 @@ interface(`kernel_sigstop_unlabeled',` ## Send a child terminated signal to unlabeled processes. ## ## -## The type of the process performing this action. +## Domain allowed access. ## # interface(`kernel_sigchld_unlabeled',` diff --git a/refpolicy/policy/modules/services/pegasus.fc b/refpolicy/policy/modules/services/pegasus.fc new file mode 100644 index 0000000..7547a45 --- /dev/null +++ b/refpolicy/policy/modules/services/pegasus.fc @@ -0,0 +1,17 @@ + +/etc/Pegasus(/.*)? gen_context(system_u:object_r:pegasus_conf_t,s0) + +/usr/sbin/cimserver -- gen_context(system_u:object_r:pegasus_exec_t,s0) +/usr/sbin/init_repository -- gen_context(system_u:object_r:pegasus_exec_t,s0) + +/var/lib/Pegasus(/.*)? gen_context(system_u:object_r:pegasus_data_t,s0) + +/var/run/tog-pegasus(/.*)? gen_context(system_u:object_r:pegasus_var_run_t,s0) + +/usr/share/Pegasus/mof(/.*)?/.*\.mof gen_context(system_u:object_r:pegasus_mof_t,s0) + +ifdef(`TODO',` +/usr/sbin/cimauth -- gen_context(system_u:object_r:pegasus_conf_exec_t,s0) +/usr/sbin/cimconfig -- gen_context(system_u:object_r:pegasus_conf_exec_t,s0) +/usr/sbin/cimuser -- gen_context(system_u:object_r:pegasus_conf_exec_t,s0) +') diff --git a/refpolicy/policy/modules/services/pegasus.if b/refpolicy/policy/modules/services/pegasus.if new file mode 100644 index 0000000..920b13f --- /dev/null +++ b/refpolicy/policy/modules/services/pegasus.if @@ -0,0 +1 @@ +## The Open Group Pegasus CIM/WBEM Server. diff --git a/refpolicy/policy/modules/services/pegasus.te b/refpolicy/policy/modules/services/pegasus.te new file mode 100644 index 0000000..4cfa05f --- /dev/null +++ b/refpolicy/policy/modules/services/pegasus.te @@ -0,0 +1,135 @@ + +policy_module(pegasus,1.0) + +######################################## +# +# Declarations +# + +type pegasus_t; +type pegasus_exec_t; +init_daemon_domain(pegasus_t,pegasus_exec_t) + +type pegasus_data_t; +files_type(pegasus_data_t) + +type pegasus_conf_t; +files_type(pegasus_conf_t) + +type pegasus_mof_t; +files_type(pegasus_mof_t) + +type pegasus_var_run_t; +files_pid_file(pegasus_var_run_t) + +######################################## +# +# Local policy +# + +allow pegasus_t self:capability { dac_override net_bind_service audit_write }; +dontaudit pegasus_t self:capability sys_tty_config; +allow pegasus_t self:fifo_file rw_file_perms; +allow pegasus_t self:unix_dgram_socket create_socket_perms; +allow pegasus_t self:unix_stream_socket create_stream_socket_perms; +allow pegasus_t self:netlink_audit_socket { create_netlink_socket_perms nlmsg_relay }; +allow pegasus_t self:tcp_socket create_stream_socket_perms; + +allow pegasus_t pegasus_conf_t:dir rw_dir_perms; +allow pegasus_t pegasus_conf_t:file create_file_perms; +allow pegasus_t pegasus_conf_t:lnk_file create_lnk_perms; + +allow pegasus_t pegasus_data_t:dir rw_dir_perms; +allow pegasus_t pegasus_data_t:file create_file_perms; +allow pegasus_t pegasus_data_t:lnk_file create_lnk_perms; + +allow pegasus_t pegasus_mof_t:dir r_dir_perms; +allow pegasus_t pegasus_mof_t:file r_file_perms; +allow pegasus_t pegasus_mof_t:lnk_file { getattr read }; + +allow pegasus_t pegasus_var_run_t:file create_file_perms; +allow pegasus_t pegasus_var_run_t:sock_file { create setattr }; +allow pegasus_t pegasus_var_run_t:dir rw_dir_perms; +files_create_pid(pegasus_t,pegasus_var_run_t) + +kernel_read_kernel_sysctl(pegasus_t) +kernel_read_system_state(pegasus_t) +kernel_search_vm_sysctl(pegasus_t) + +corenet_tcp_sendrecv_all_if(pegasus_t) +corenet_raw_sendrecv_all_if(pegasus_t) +corenet_tcp_sendrecv_all_nodes(pegasus_t) +corenet_raw_sendrecv_all_nodes(pegasus_t) +corenet_tcp_sendrecv_all_ports(pegasus_t) +corenet_tcp_bind_all_nodes(pegasus_t) +corenet_tcp_bind_pegasus_http_port(pegasus_t) +corenet_tcp_bind_pegasus_https_port(pegasus_t) +corenet_tcp_connect_pegasus_http_port(pegasus_t) +corenet_tcp_connect_pegasus_https_port(pegasus_t) + +dev_read_sysfs(pegasus_t) +dev_read_urand(pegasus_t) + +fs_getattr_all_fs(pegasus_t) +fs_search_auto_mountpoints(pegasus_t) + +term_dontaudit_use_console(pegasus_t) + +auth_use_nsswitch(pegasus_t) +auth_read_shadow(pegasus_t) + +domain_use_wide_inherit_fd(pegasus_t) + +files_read_etc_files(pegasus_t) +files_list_var_lib(pegasus_t) +files_read_var_lib_files(pegasus_t) +files_read_var_lib_symlinks(pegasus_t) + +init_use_fd(pegasus_t) +init_use_script_pty(pegasus_t) +init_rw_script_pid(pegasus_t) + +libs_use_ld_so(pegasus_t) +libs_use_shared_libs(pegasus_t) + +miscfiles_read_localization(pegasus_t) + +sysnet_read_config(pegasus_t) + +userdom_dontaudit_use_unpriv_user_fd(pegasus_t) +userdom_dontaudit_search_sysadm_home_dir(pegasus_t) + +ifdef(`targeted_policy', ` + term_dontaudit_use_unallocated_tty(pegasus_t) + term_dontaudit_use_generic_pty(pegasus_t) + files_dontaudit_read_root_file(pegasus_t) +') + +optional_policy(`logging.te',` + logging_send_syslog_msg(pegasus_t) +') + +optional_policy(`nscd.te',` + nscd_use_socket(pegasus_t) +') + +optional_policy(`selinuxutil.te',` + seutil_sigchld_newrole(pegasus_t) + seutil_dontaudit_read_config(pegasus_t) +') + +optional_policy(`udev.te', ` + udev_read_db(pegasus_t) +') + +ifdef(`TODO',` +optional_policy(`rhgb.te',` + rhgb_domain(pegasus_t) +') + +#type pegasus_conf_exec_t, exec_type; +files_type(pegasus_conf_exec_t) +allow pegasus_conf_exec_t pegasus_conf_t:dir rw_dir_perms; +allow pegasus_conf_exec_t pegasus_conf_t:file create_file_perms; +allow pegasus_conf_exec_t pegasus_conf_t:lnk_file create_lnk_perms; +') dnl end TODO diff --git a/refpolicy/policy/modules/system/libraries.fc b/refpolicy/policy/modules/system/libraries.fc index 0245e0c..1b8b2fb 100644 --- a/refpolicy/policy/modules/system/libraries.fc +++ b/refpolicy/policy/modules/system/libraries.fc @@ -46,7 +46,7 @@ /usr/lib/win32/.* -- gen_context(system_u:object_r:shlib_t,s0) /usr/lib(64)?/libGL(core)?/.so(\.[^/]*)* -- gen_context(system_u:object_r:texrel_shlib_t,s0) - +/usr/lib(64)?/Pegasus/providers/.*\.so.* gen_context(system_u:object_r:shlib_t,s0) /usr/lib(64)?(/.*)?/libnvidia.*\.so(\.[^/]*)* -- gen_context(system_u:object_r:texrel_shlib_t,s0) /usr/(local/)?lib/wine/.*\.so -- gen_context(system_u:object_r:texrel_shlib_t,s0)