fee48647ac
67effb0
483be01
c6c63f6
b0d8d59
5b082e4
b8097d6
689d954
5afc3d3
f3c5e77
a59e50c
cf87233
17759c7
dc1db54
e9bf16d
4f95198
bf40792
622c63b
c20842c
dc7cc4d
792d448
172 lines
4.8 KiB
Plaintext
172 lines
4.8 KiB
Plaintext
policy_module(nut, 1.1.1)
|
|
|
|
########################################
|
|
#
|
|
# Declarations
|
|
#
|
|
|
|
type nut_conf_t;
|
|
files_config_file(nut_conf_t)
|
|
|
|
type nut_upsd_t;
|
|
type nut_upsd_exec_t;
|
|
init_daemon_domain(nut_upsd_t, nut_upsd_exec_t)
|
|
|
|
type nut_upsmon_t;
|
|
type nut_upsmon_exec_t;
|
|
init_daemon_domain(nut_upsmon_t, nut_upsmon_exec_t)
|
|
|
|
type nut_upsdrvctl_t;
|
|
type nut_upsdrvctl_exec_t;
|
|
init_daemon_domain(nut_upsdrvctl_t, nut_upsdrvctl_exec_t)
|
|
|
|
type nut_var_run_t;
|
|
files_pid_file(nut_var_run_t)
|
|
|
|
########################################
|
|
#
|
|
# Local policy for upsd
|
|
#
|
|
|
|
allow nut_upsd_t self:capability { setgid setuid dac_override };
|
|
|
|
allow nut_upsd_t self:unix_dgram_socket { create_socket_perms sendto };
|
|
allow nut_upsd_t self:tcp_socket connected_stream_socket_perms;
|
|
|
|
allow nut_upsd_t nut_upsdrvctl_t:unix_stream_socket connectto;
|
|
|
|
read_files_pattern(nut_upsd_t, nut_conf_t, nut_conf_t)
|
|
|
|
# pid file
|
|
manage_files_pattern(nut_upsd_t, nut_var_run_t, nut_var_run_t)
|
|
manage_dirs_pattern(nut_upsd_t, nut_var_run_t, nut_var_run_t)
|
|
manage_sock_files_pattern(nut_upsd_t, nut_var_run_t, nut_var_run_t)
|
|
files_pid_filetrans(nut_upsd_t, nut_var_run_t, { dir file sock_file })
|
|
|
|
kernel_read_kernel_sysctls(nut_upsd_t)
|
|
|
|
corenet_tcp_bind_ups_port(nut_upsd_t)
|
|
corenet_tcp_bind_generic_port(nut_upsd_t)
|
|
corenet_tcp_bind_all_nodes(nut_upsd_t)
|
|
|
|
files_read_usr_files(nut_upsd_t)
|
|
|
|
auth_use_nsswitch(nut_upsd_t)
|
|
|
|
logging_send_syslog_msg(nut_upsd_t)
|
|
|
|
miscfiles_read_localization(nut_upsd_t)
|
|
|
|
########################################
|
|
#
|
|
# Local policy for upsmon
|
|
#
|
|
|
|
allow nut_upsmon_t self:capability { dac_override dac_read_search setgid setuid };
|
|
allow nut_upsmon_t self:fifo_file rw_fifo_file_perms;
|
|
allow nut_upsmon_t self:unix_dgram_socket { create_socket_perms sendto };
|
|
allow nut_upsmon_t self:unix_stream_socket { create_socket_perms connectto };
|
|
allow nut_upsmon_t self:tcp_socket create_socket_perms;
|
|
|
|
read_files_pattern(nut_upsmon_t, nut_conf_t, nut_conf_t)
|
|
|
|
# pid file
|
|
manage_files_pattern(nut_upsmon_t, nut_var_run_t, nut_var_run_t)
|
|
manage_dirs_pattern(nut_upsmon_t, nut_var_run_t, nut_var_run_t)
|
|
files_pid_filetrans(nut_upsmon_t, nut_var_run_t, file)
|
|
|
|
kernel_read_kernel_sysctls(nut_upsmon_t)
|
|
kernel_read_system_state(nut_upsmon_t)
|
|
|
|
corecmd_exec_bin(nut_upsmon_t)
|
|
corecmd_exec_shell(nut_upsmon_t)
|
|
|
|
corenet_tcp_connect_ups_port(nut_upsmon_t)
|
|
corenet_tcp_connect_generic_port(nut_upsmon_t)
|
|
|
|
# Creates /etc/killpower
|
|
files_manage_etc_runtime_files(nut_upsmon_t)
|
|
files_etc_filetrans_etc_runtime(nut_upsmon_t, file)
|
|
files_search_usr(nut_upsmon_t)
|
|
|
|
# /usr/bin/wall
|
|
term_write_all_terms(nut_upsmon_t)
|
|
|
|
# upsmon runs shutdown, probably need a shutdown domain
|
|
init_rw_utmp(nut_upsmon_t)
|
|
init_telinit(nut_upsmon_t)
|
|
|
|
logging_send_syslog_msg(nut_upsmon_t)
|
|
|
|
auth_use_nsswitch(nut_upsmon_t)
|
|
|
|
miscfiles_read_localization(nut_upsmon_t)
|
|
|
|
mta_send_mail(nut_upsmon_t)
|
|
|
|
optional_policy(`
|
|
shutdown_domtrans(nut_upsmon_t)
|
|
')
|
|
|
|
########################################
|
|
#
|
|
# Local policy for upsdrvctl
|
|
#
|
|
|
|
allow nut_upsdrvctl_t self:capability { dac_override kill setgid setuid };
|
|
allow nut_upsdrvctl_t self:process { sigchld signal signull };
|
|
allow nut_upsdrvctl_t self:fd use;
|
|
allow nut_upsdrvctl_t self:fifo_file rw_fifo_file_perms;
|
|
allow nut_upsdrvctl_t self:unix_dgram_socket { create_socket_perms sendto };
|
|
allow nut_upsdrvctl_t self:udp_socket create_socket_perms;
|
|
|
|
read_files_pattern(nut_upsdrvctl_t, nut_conf_t, nut_conf_t)
|
|
|
|
# pid file
|
|
manage_files_pattern(nut_upsdrvctl_t, nut_var_run_t, nut_var_run_t)
|
|
manage_dirs_pattern(nut_upsdrvctl_t, nut_var_run_t, nut_var_run_t)
|
|
manage_sock_files_pattern(nut_upsdrvctl_t, nut_var_run_t, nut_var_run_t)
|
|
files_pid_filetrans(nut_upsdrvctl_t, nut_var_run_t, { file sock_file })
|
|
|
|
kernel_read_kernel_sysctls(nut_upsdrvctl_t)
|
|
|
|
# /sbin/upsdrvctl executes other drivers
|
|
corecmd_exec_bin(nut_upsdrvctl_t)
|
|
|
|
dev_read_urand(nut_upsdrvctl_t)
|
|
dev_rw_generic_usb_dev(nut_upsdrvctl_t)
|
|
|
|
term_use_unallocated_ttys(nut_upsdrvctl_t)
|
|
|
|
auth_use_nsswitch(nut_upsdrvctl_t)
|
|
|
|
init_sigchld(nut_upsdrvctl_t)
|
|
|
|
logging_send_syslog_msg(nut_upsdrvctl_t)
|
|
|
|
miscfiles_read_localization(nut_upsdrvctl_t)
|
|
|
|
#######################################
|
|
#
|
|
# Local policy for upscgi scripts
|
|
# requires httpd_enable_cgi and httpd_can_network_connect
|
|
#
|
|
|
|
optional_policy(`
|
|
apache_content_template(nutups_cgi)
|
|
|
|
read_files_pattern(httpd_nutups_cgi_script_t, nut_conf_t, nut_conf_t)
|
|
|
|
corenet_all_recvfrom_unlabeled(httpd_nutups_cgi_script_t)
|
|
corenet_all_recvfrom_netlabel(httpd_nutups_cgi_script_t)
|
|
corenet_tcp_sendrecv_generic_if(httpd_nutups_cgi_script_t)
|
|
corenet_tcp_sendrecv_generic_node(httpd_nutups_cgi_script_t)
|
|
corenet_tcp_sendrecv_all_ports(httpd_nutups_cgi_script_t)
|
|
corenet_tcp_connect_ups_port(httpd_nutups_cgi_script_t)
|
|
corenet_udp_sendrecv_generic_if(httpd_nutups_cgi_script_t)
|
|
corenet_udp_sendrecv_generic_node(httpd_nutups_cgi_script_t)
|
|
corenet_udp_sendrecv_all_ports(httpd_nutups_cgi_script_t)
|
|
|
|
sysnet_dns_name_resolve(httpd_nutups_cgi_script_t)
|
|
')
|