]> git.ipfire.org Git - people/stevee/selinux-policy.git/blame - policy/modules/services/nut.te
Bump module versions for release.
[people/stevee/selinux-policy.git] / policy / modules / services / nut.te
CommitLineData
e526fca1 1
29af4c13 2policy_module(nut, 1.1.0)
e526fca1
CP
3
4########################################
5#
6# Declarations
7#
8
9type nut_conf_t;
10files_config_file(nut_conf_t)
11
12type nut_upsd_t;
13type nut_upsd_exec_t;
14init_daemon_domain(nut_upsd_t, nut_upsd_exec_t)
15
16type nut_upsmon_t;
17type nut_upsmon_exec_t;
18init_daemon_domain(nut_upsmon_t, nut_upsmon_exec_t)
19
20type nut_upsdrvctl_t;
21type nut_upsdrvctl_exec_t;
22init_daemon_domain(nut_upsdrvctl_t, nut_upsdrvctl_exec_t)
23
24type nut_var_run_t;
25files_pid_file(nut_var_run_t)
26
27########################################
28#
29# Local policy for upsd
30#
31
f8b3b7fa
JS
32allow nut_upsd_t self:capability { setgid setuid dac_override };
33
e526fca1
CP
34allow nut_upsd_t self:unix_dgram_socket { create_socket_perms sendto };
35allow nut_upsd_t self:tcp_socket connected_stream_socket_perms;
36
37allow nut_upsd_t nut_upsdrvctl_t:unix_stream_socket connectto;
38
39read_files_pattern(nut_upsd_t, nut_conf_t, nut_conf_t)
40
41# pid file
42manage_files_pattern(nut_upsd_t, nut_var_run_t, nut_var_run_t)
43manage_dirs_pattern(nut_upsd_t, nut_var_run_t, nut_var_run_t)
44manage_sock_files_pattern(nut_upsd_t, nut_var_run_t, nut_var_run_t)
45files_pid_filetrans(nut_upsd_t, nut_var_run_t, { file sock_file })
46
47kernel_read_kernel_sysctls(nut_upsd_t)
48
49corenet_tcp_bind_ups_port(nut_upsd_t)
50corenet_tcp_bind_generic_port(nut_upsd_t)
51corenet_tcp_bind_all_nodes(nut_upsd_t)
52
53files_read_usr_files(nut_upsd_t)
54
55auth_use_nsswitch(nut_upsd_t)
56
57logging_send_syslog_msg(nut_upsd_t)
58
59miscfiles_read_localization(nut_upsd_t)
60
61########################################
62#
63# Local policy for upsmon
64#
65
66allow nut_upsmon_t self:capability { dac_override dac_read_search setgid setuid };
67allow nut_upsmon_t self:fifo_file rw_fifo_file_perms;
68allow nut_upsmon_t self:unix_dgram_socket { create_socket_perms sendto };
69allow nut_upsmon_t self:tcp_socket create_socket_perms;
70
71read_files_pattern(nut_upsmon_t, nut_conf_t, nut_conf_t)
72
73# pid file
74manage_files_pattern(nut_upsmon_t, nut_var_run_t, nut_var_run_t)
75manage_dirs_pattern(nut_upsmon_t, nut_var_run_t, nut_var_run_t)
76files_pid_filetrans(nut_upsmon_t, nut_var_run_t, file)
77
78kernel_read_kernel_sysctls(nut_upsmon_t)
79kernel_read_system_state(nut_upsmon_t)
80
81corecmd_exec_bin(nut_upsmon_t)
82corecmd_exec_shell(nut_upsmon_t)
83
84corenet_tcp_connect_ups_port(nut_upsmon_t)
85corenet_tcp_connect_generic_port(nut_upsmon_t)
86
87# Creates /etc/killpower
88files_manage_etc_runtime_files(nut_upsmon_t)
89files_etc_filetrans_etc_runtime(nut_upsmon_t, file)
f8b3b7fa 90files_search_usr(nut_upsmon_t)
e526fca1
CP
91
92# /usr/bin/wall
93term_write_all_terms(nut_upsmon_t)
94
95# upsmon runs shutdown, probably need a shutdown domain
96init_rw_utmp(nut_upsmon_t)
97init_telinit(nut_upsmon_t)
98
99logging_send_syslog_msg(nut_upsmon_t)
100
101auth_use_nsswitch(nut_upsmon_t)
102
103miscfiles_read_localization(nut_upsmon_t)
104
f8b3b7fa
JS
105mta_send_mail(nut_upsmon_t)
106
e526fca1
CP
107########################################
108#
109# Local policy for upsdrvctl
110#
111
112allow nut_upsdrvctl_t self:capability { dac_override kill setgid setuid };
113allow nut_upsdrvctl_t self:process { sigchld signal signull };
114allow nut_upsdrvctl_t self:fd use;
115allow nut_upsdrvctl_t self:fifo_file rw_fifo_file_perms;
116allow nut_upsdrvctl_t self:unix_dgram_socket { create_socket_perms sendto };
117allow nut_upsdrvctl_t self:udp_socket create_socket_perms;
118
119read_files_pattern(nut_upsdrvctl_t, nut_conf_t, nut_conf_t)
120
121# pid file
122manage_files_pattern(nut_upsdrvctl_t, nut_var_run_t, nut_var_run_t)
123manage_dirs_pattern(nut_upsdrvctl_t, nut_var_run_t, nut_var_run_t)
124manage_sock_files_pattern(nut_upsdrvctl_t, nut_var_run_t, nut_var_run_t)
125files_pid_filetrans(nut_upsdrvctl_t, nut_var_run_t, { file sock_file })
126
127kernel_read_kernel_sysctls(nut_upsdrvctl_t)
128
129# /sbin/upsdrvctl executes other drivers
130corecmd_exec_bin(nut_upsdrvctl_t)
131
132dev_read_urand(nut_upsdrvctl_t)
133dev_rw_generic_usb_dev(nut_upsdrvctl_t)
134
135term_use_unallocated_ttys(nut_upsdrvctl_t)
136
137auth_use_nsswitch(nut_upsdrvctl_t)
138
139init_sigchld(nut_upsdrvctl_t)
140
141logging_send_syslog_msg(nut_upsdrvctl_t)
142
143miscfiles_read_localization(nut_upsdrvctl_t)
144
145#######################################
146#
147# Local policy for upscgi scripts
148# requires httpd_enable_cgi and httpd_can_network_connect
149#
150
151optional_policy(`
152 apache_content_template(nutups_cgi)
153
154 read_files_pattern(httpd_nutups_cgi_script_t, nut_conf_t, nut_conf_t)
155
f8b3b7fa
JS
156 corenet_all_recvfrom_unlabeled(httpd_nutups_cgi_script_t)
157 corenet_all_recvfrom_netlabel(httpd_nutups_cgi_script_t)
158 corenet_tcp_sendrecv_generic_if(httpd_nutups_cgi_script_t)
159 corenet_tcp_sendrecv_generic_node(httpd_nutups_cgi_script_t)
160 corenet_tcp_sendrecv_all_ports(httpd_nutups_cgi_script_t)
e526fca1 161 corenet_tcp_connect_ups_port(httpd_nutups_cgi_script_t)
f8b3b7fa
JS
162 corenet_udp_sendrecv_generic_if(httpd_nutups_cgi_script_t)
163 corenet_udp_sendrecv_generic_node(httpd_nutups_cgi_script_t)
164 corenet_udp_sendrecv_all_ports(httpd_nutups_cgi_script_t)
165
166 sysnet_dns_name_resolve(httpd_nutups_cgi_script_t)
e526fca1 167')