]> git.ipfire.org Git - people/stevee/selinux-policy.git/blob - policy/modules/services/ricci.te
trunk: Unified labeled networking policy from Paul Moore.
[people/stevee/selinux-policy.git] / policy / modules / services / ricci.te
1
2 policy_module(ricci,1.1.1)
3
4 ########################################
5 #
6 # Declarations
7 #
8
9 type ricci_t;
10 type ricci_exec_t;
11 domain_type(ricci_t)
12 init_daemon_domain(ricci_t, ricci_exec_t)
13
14 # tmp files
15 type ricci_tmp_t;
16 files_tmp_file(ricci_tmp_t)
17
18 # var/lib files
19 type ricci_var_lib_t;
20 files_type(ricci_var_lib_t)
21
22 # log files
23 type ricci_var_log_t;
24 logging_log_file(ricci_var_log_t)
25
26 # pid files
27 type ricci_var_run_t;
28 files_pid_file(ricci_var_run_t)
29
30 type ricci_modcluster_t;
31 type ricci_modcluster_exec_t;
32 domain_type(ricci_modcluster_t)
33 domain_entry_file(ricci_modcluster_t, ricci_modcluster_exec_t)
34 role system_r types ricci_modcluster_t;
35
36 # var/lib files
37 type ricci_modcluster_var_lib_t;
38 files_type(ricci_modcluster_var_lib_t)
39
40 # log files
41 type ricci_modcluster_var_log_t;
42 logging_log_file(ricci_modcluster_var_log_t)
43
44 # pid files
45 type ricci_modcluster_var_run_t;
46 files_pid_file(ricci_modcluster_var_run_t)
47
48 type ricci_modclusterd_t;
49 type ricci_modclusterd_exec_t;
50 domain_type(ricci_modclusterd_t)
51 init_daemon_domain(ricci_modclusterd_t, ricci_modclusterd_exec_t)
52
53 type ricci_modlog_t;
54 type ricci_modlog_exec_t;
55 domain_type(ricci_modlog_t)
56 domain_entry_file(ricci_modlog_t, ricci_modlog_exec_t)
57 role system_r types ricci_modlog_t;
58
59 type ricci_modrpm_t;
60 type ricci_modrpm_exec_t;
61 domain_type(ricci_modrpm_t)
62 domain_entry_file(ricci_modrpm_t, ricci_modrpm_exec_t)
63 role system_r types ricci_modrpm_t;
64
65 type ricci_modservice_t;
66 type ricci_modservice_exec_t;
67 domain_type(ricci_modservice_t)
68 domain_entry_file(ricci_modservice_t, ricci_modservice_exec_t)
69 role system_r types ricci_modservice_t;
70
71 type ricci_modstorage_t;
72 type ricci_modstorage_exec_t;
73 domain_type(ricci_modstorage_t)
74 domain_entry_file(ricci_modstorage_t, ricci_modstorage_exec_t)
75 role system_r types ricci_modstorage_t;
76
77 type ricci_modstorage_lock_t;
78 files_lock_file(ricci_modstorage_lock_t)
79
80 ########################################
81 #
82 # ricci local policy
83 #
84
85 allow ricci_t self:capability { setuid sys_nice sys_boot };
86 allow ricci_t self:process setsched;
87 allow ricci_t self:fifo_file { read write };
88 allow ricci_t self:unix_stream_socket { create_stream_socket_perms connectto };
89 allow ricci_t self:tcp_socket create_stream_socket_perms;
90
91 domain_auto_trans(ricci_t,ricci_modcluster_exec_t,ricci_modcluster_t)
92 domain_auto_trans(ricci_t,ricci_modlog_exec_t,ricci_modlog_t)
93 domain_auto_trans(ricci_t,ricci_modrpm_exec_t,ricci_modrpm_t)
94 domain_auto_trans(ricci_t,ricci_modservice_exec_t,ricci_modservice_t)
95 domain_auto_trans(ricci_t,ricci_modstorage_exec_t,ricci_modstorage_t)
96
97 # tmp file
98 manage_dirs_pattern(ricci_t,ricci_tmp_t,ricci_tmp_t)
99 manage_files_pattern(ricci_t,ricci_tmp_t,ricci_tmp_t)
100 files_tmp_filetrans(ricci_t, ricci_tmp_t, { file dir })
101
102 # var/lib files for ricci
103 manage_dirs_pattern(ricci_t,ricci_var_lib_t,ricci_var_lib_t)
104 manage_files_pattern(ricci_t,ricci_var_lib_t,ricci_var_lib_t)
105 manage_sock_files_pattern(ricci_t,ricci_var_lib_t,ricci_var_lib_t)
106 files_var_lib_filetrans(ricci_t,ricci_var_lib_t, { file dir sock_file })
107
108 # log files
109 allow ricci_t ricci_var_log_t:dir setattr;
110 manage_files_pattern(ricci_t,ricci_var_log_t,ricci_var_log_t)
111 manage_sock_files_pattern(ricci_t,ricci_var_log_t,ricci_var_log_t)
112 logging_log_filetrans(ricci_t,ricci_var_log_t,{ sock_file file dir })
113
114 # pid file
115 manage_files_pattern(ricci_t,ricci_var_run_t,ricci_var_run_t)
116 manage_sock_files_pattern(ricci_t,ricci_var_run_t,ricci_var_run_t)
117 files_pid_filetrans(ricci_t,ricci_var_run_t, { file sock_file })
118
119 kernel_read_kernel_sysctls(ricci_t)
120
121 corecmd_exec_bin(ricci_t)
122
123 corenet_all_recvfrom_unlabeled(ricci_t)
124 corenet_all_recvfrom_netlabel(ricci_t)
125 corenet_tcp_sendrecv_all_if(ricci_t)
126 corenet_tcp_sendrecv_all_nodes(ricci_t)
127 corenet_tcp_sendrecv_all_ports(ricci_t)
128 corenet_tcp_bind_all_nodes(ricci_t)
129 corenet_udp_bind_all_nodes(ricci_t)
130 corenet_tcp_bind_ricci_port(ricci_t)
131 corenet_udp_bind_ricci_port(ricci_t)
132 corenet_tcp_connect_http_port(ricci_t)
133
134 dev_read_urand(ricci_t)
135
136 files_read_etc_files(ricci_t)
137 files_read_etc_runtime_files(ricci_t)
138 files_create_boot_flag(ricci_t)
139
140 auth_domtrans_chk_passwd(ricci_t)
141 auth_append_login_records(ricci_t)
142
143 init_dontaudit_stream_connect_script(ricci_t)
144
145 libs_use_ld_so(ricci_t)
146 libs_use_shared_libs(ricci_t)
147
148 locallogin_dontaudit_use_fds(ricci_t)
149
150 logging_send_syslog_msg(ricci_t)
151
152 miscfiles_read_localization(ricci_t)
153
154 sysnet_dns_name_resolve(ricci_t)
155
156 ifdef(`targeted_policy', `
157 term_dontaudit_use_generic_ptys(ricci_t)
158 term_dontaudit_use_unallocated_ttys(ricci_t)
159 ')
160
161 optional_policy(`
162 ccs_read_config(ricci_t)
163 ')
164
165 optional_policy(`
166 dbus_system_bus_client_template(ricci,ricci_t)
167 dbus_send_system_bus(ricci_t)
168 oddjob_dbus_chat(ricci_t)
169 ')
170
171 optional_policy(`
172 # Needed so oddjob can run halt/reboot on behalf of ricci
173 corecmd_bin_entry_type(ricci_t)
174 term_dontaudit_search_ptys(ricci_t)
175 init_exec(ricci_t)
176 init_telinit(ricci_t)
177 init_rw_utmp(ricci_t)
178
179 oddjob_system_entry(ricci_t, ricci_exec_t)
180 ')
181
182 optional_policy(`
183 rpm_use_script_fds(ricci_t)
184 ')
185
186 optional_policy(`
187 sasl_connect(ricci_t)
188 ')
189
190 optional_policy(`
191 unconfined_use_fds(ricci_t)
192 ')
193
194 optional_policy(`
195 xen_domtrans_xm(ricci_t)
196 ')
197
198 ########################################
199 #
200 # ricci_modcluster local policy
201 #
202
203 allow ricci_modcluster_t self:capability sys_nice;
204 allow ricci_modcluster_t self:process setsched;
205 allow ricci_modcluster_t self:fifo_file rw_fifo_file_perms;
206
207 kernel_read_kernel_sysctls(ricci_modcluster_t)
208 kernel_read_system_state(ricci_modcluster_t)
209
210 corecmd_exec_shell(ricci_modcluster_t)
211 corecmd_exec_bin(ricci_modcluster_t)
212
213 domain_dontaudit_read_all_domains_state(ricci_modcluster_t)
214
215 files_search_locks(ricci_modcluster_t)
216 files_read_etc_runtime_files(ricci_modcluster_t)
217 files_read_etc_files(ricci_modcluster_t)
218 files_search_usr(ricci_modcluster_t)
219
220 init_exec(ricci_modcluster_t)
221 init_domtrans_script(ricci_modcluster_t)
222
223 libs_use_ld_so(ricci_modcluster_t)
224 libs_use_shared_libs(ricci_modcluster_t)
225
226 logging_send_syslog_msg(ricci_modcluster_t)
227
228 miscfiles_read_localization(ricci_modcluster_t)
229
230 modutils_domtrans_insmod(ricci_modcluster_t)
231
232 mount_domtrans(ricci_modcluster_t)
233
234 ricci_stream_connect_modclusterd(ricci_modcluster_t)
235
236 optional_policy(`
237 ccs_stream_connect(ricci_modcluster_t)
238 ccs_domtrans(ricci_modcluster_t)
239 ccs_manage_config(ricci_modcluster_t)
240 ')
241
242 optional_policy(`
243 consoletype_exec(ricci_modcluster_t)
244 ')
245
246 optional_policy(`
247 lvm_domtrans(ricci_modcluster_t)
248 ')
249
250 optional_policy(`
251 nscd_socket_use(ricci_modcluster_t)
252 ')
253
254 optional_policy(`
255 oddjob_system_entry(ricci_modcluster_t, ricci_modcluster_exec_t)
256 ')
257
258 # XXX This has got to go.
259 unconfined_domain(ricci_modcluster_t)
260
261 ########################################
262 #
263 # ricci_modclusterd local policy
264 #
265
266 allow ricci_modclusterd_t self:capability sys_nice;
267 allow ricci_modclusterd_t self:process { signal sigkill setsched };
268 allow ricci_modclusterd_t self:fifo_file rw_fifo_file_perms;
269 allow ricci_modclusterd_t self:unix_stream_socket create_stream_socket_perms;
270 allow ricci_modclusterd_t self:tcp_socket create_stream_socket_perms;
271 allow ricci_modclusterd_t self:netlink_route_socket r_netlink_socket_perms;
272 # cjp: this needs to be fixed for a specific socket type:
273 allow ricci_modclusterd_t self:socket create_socket_perms;
274
275 allow ricci_modclusterd_t ricci_modcluster_t:unix_stream_socket connectto;
276
277 # log files
278 allow ricci_modclusterd_t ricci_modcluster_var_log_t:dir setattr;
279 manage_files_pattern(ricci_modclusterd_t,ricci_modcluster_var_log_t,ricci_modcluster_var_log_t)
280 manage_sock_files_pattern(ricci_modclusterd_t,ricci_modcluster_var_log_t,ricci_modcluster_var_log_t)
281 logging_log_filetrans(ricci_modclusterd_t,ricci_modcluster_var_log_t,{ sock_file file dir })
282
283 # pid file
284 manage_files_pattern(ricci_modclusterd_t,ricci_modcluster_var_run_t,ricci_modcluster_var_run_t)
285 manage_sock_files_pattern(ricci_modclusterd_t,ricci_modcluster_var_run_t,ricci_modcluster_var_run_t)
286 files_pid_filetrans(ricci_modclusterd_t,ricci_modcluster_var_run_t, { file sock_file })
287
288 kernel_read_kernel_sysctls(ricci_modclusterd_t)
289 kernel_read_system_state(ricci_modclusterd_t)
290
291 corecmd_exec_bin(ricci_modclusterd_t)
292
293 corenet_tcp_sendrecv_all_if(ricci_modclusterd_t)
294 corenet_tcp_sendrecv_all_ports(ricci_modclusterd_t)
295 corenet_tcp_bind_all_nodes(ricci_modclusterd_t)
296 corenet_tcp_bind_ricci_modcluster_port(ricci_modclusterd_t)
297 corenet_tcp_connect_ricci_modcluster_port(ricci_modclusterd_t)
298
299 domain_dontaudit_read_all_domains_state(ricci_modclusterd_t)
300
301 files_read_etc_files(ricci_modclusterd_t)
302 files_read_etc_runtime_files(ricci_modclusterd_t)
303
304 fs_getattr_xattr_fs(ricci_modclusterd_t)
305
306 init_dontaudit_stream_connect_script(ricci_modclusterd_t)
307
308 libs_use_ld_so(ricci_modclusterd_t)
309 libs_use_shared_libs(ricci_modclusterd_t)
310
311 locallogin_dontaudit_use_fds(ricci_modclusterd_t)
312
313 logging_send_syslog_msg(ricci_modclusterd_t)
314
315 miscfiles_read_localization(ricci_modclusterd_t)
316
317 sysnet_domtrans_ifconfig(ricci_modclusterd_t)
318 sysnet_dns_name_resolve(ricci_modclusterd_t)
319
320 ifdef(`targeted_policy', `
321 term_dontaudit_use_generic_ptys(ricci_modclusterd_t)
322 term_dontaudit_use_unallocated_ttys(ricci_modclusterd_t)
323 ')
324
325 optional_policy(`
326 ccs_domtrans(ricci_modclusterd_t)
327 ccs_stream_connect(ricci_modclusterd_t)
328 ccs_read_config(ricci_modclusterd_t)
329 ')
330
331 optional_policy(`
332 unconfined_use_fds(ricci_modclusterd_t)
333 ')
334
335 ########################################
336 #
337 # ricci_modlog local policy
338 #
339
340 allow ricci_modlog_t self:capability sys_nice;
341 allow ricci_modlog_t self:process setsched;
342
343 kernel_read_kernel_sysctls(ricci_modlog_t)
344 kernel_read_system_state(ricci_modlog_t)
345
346 corecmd_exec_bin(ricci_modlog_t)
347
348 domain_dontaudit_read_all_domains_state(ricci_modlog_t)
349
350 files_read_etc_files(ricci_modlog_t)
351 files_search_usr(ricci_modlog_t)
352
353 libs_use_ld_so(ricci_modlog_t)
354 libs_use_shared_libs(ricci_modlog_t)
355
356 logging_read_generic_logs(ricci_modlog_t)
357
358 miscfiles_read_localization(ricci_modlog_t)
359
360 optional_policy(`
361 nscd_dontaudit_search_pid(ricci_modlog_t)
362 ')
363
364 optional_policy(`
365 oddjob_system_entry(ricci_modlog_t, ricci_modlog_exec_t)
366 ')
367
368 ########################################
369 #
370 # ricci_modrpm local policy
371 #
372
373 allow ricci_modrpm_t self:fifo_file { getattr read };
374
375 kernel_read_kernel_sysctls(ricci_modrpm_t)
376
377 corecmd_exec_bin(ricci_modrpm_t)
378
379 libs_use_ld_so(ricci_modrpm_t)
380 libs_use_shared_libs(ricci_modrpm_t)
381
382 files_search_usr(ricci_modrpm_t)
383 files_read_etc_files(ricci_modrpm_t)
384
385 miscfiles_read_localization(ricci_modrpm_t)
386
387 optional_policy(`
388 oddjob_system_entry(ricci_modrpm_t, ricci_modrpm_exec_t)
389 ')
390
391 optional_policy(`
392 rpm_domtrans(ricci_modrpm_t)
393 ')
394
395 ########################################
396 #
397 # ricci_modservice local policy
398 #
399
400 allow ricci_modservice_t self:capability { dac_override sys_nice };
401 allow ricci_modservice_t self:fifo_file { getattr read write };
402 allow ricci_modservice_t self:process setsched;
403
404 kernel_read_kernel_sysctls(ricci_modservice_t)
405 kernel_read_system_state(ricci_modservice_t)
406
407 corecmd_exec_bin(ricci_modservice_t)
408 corecmd_exec_shell(ricci_modservice_t)
409
410 files_read_etc_files(ricci_modservice_t)
411 files_read_etc_runtime_files(ricci_modservice_t)
412 files_search_usr(ricci_modservice_t)
413 # Needed for running chkconfig
414 files_manage_etc_symlinks(ricci_modservice_t)
415
416 consoletype_exec(ricci_modservice_t)
417
418 init_domtrans_script(ricci_modservice_t)
419
420 libs_use_ld_so(ricci_modservice_t)
421 libs_use_shared_libs(ricci_modservice_t)
422
423 miscfiles_read_localization(ricci_modservice_t)
424
425 optional_policy(`
426 ccs_read_config(ricci_modservice_t)
427 ')
428
429 optional_policy(`
430 nscd_dontaudit_search_pid(ricci_modservice_t)
431 ')
432
433 optional_policy(`
434 oddjob_system_entry(ricci_modservice_t, ricci_modservice_exec_t)
435 ')
436
437 ########################################
438 #
439 # ricci_modstorage local policy
440 #
441
442 allow ricci_modstorage_t self:process { setsched signal };
443 dontaudit ricci_modstorage_t self:process ptrace;
444 allow ricci_modstorage_t self:capability { mknod sys_nice };
445 allow ricci_modstorage_t self:fifo_file rw_fifo_file_perms;
446 allow ricci_modstorage_t self:unix_dgram_socket create_socket_perms;
447
448 kernel_read_kernel_sysctls(ricci_modstorage_t)
449 kernel_read_system_state(ricci_modstorage_t)
450
451 create_files_pattern(ricci_modstorage_t,ricci_modstorage_lock_t,ricci_modstorage_lock_t)
452 files_lock_filetrans(ricci_modstorage_t,ricci_modstorage_lock_t,file)
453
454 corecmd_exec_bin(ricci_modstorage_t)
455
456 dev_read_sysfs(ricci_modstorage_t)
457 dev_read_urand(ricci_modstorage_t)
458 dev_manage_generic_blk_files(ricci_modstorage_t)
459
460 domain_dontaudit_read_all_domains_state(ricci_modstorage_t)
461
462 #Needed for editing /etc/fstab
463 files_manage_etc_files(ricci_modstorage_t)
464 files_read_etc_runtime_files(ricci_modstorage_t)
465 files_read_usr_files(ricci_modstorage_t)
466 files_read_kernel_modules(ricci_modstorage_t)
467
468 storage_raw_read_fixed_disk(ricci_modstorage_t)
469
470 term_dontaudit_use_console(ricci_modstorage_t)
471
472 fstools_domtrans(ricci_modstorage_t)
473
474 libs_use_ld_so(ricci_modstorage_t)
475 libs_use_shared_libs(ricci_modstorage_t)
476
477 logging_send_syslog_msg(ricci_modstorage_t)
478
479 lvm_domtrans(ricci_modstorage_t)
480 lvm_manage_config(ricci_modstorage_t)
481
482 miscfiles_read_localization(ricci_modstorage_t)
483
484 modutils_read_module_deps(ricci_modstorage_t)
485
486 optional_policy(`
487 ccs_stream_connect(ricci_modstorage_t)
488 ccs_read_config(ricci_modstorage_t)
489 ')
490
491 optional_policy(`
492 lvm_domtrans(ricci_modstorage_t)
493 ')
494
495 optional_policy(`
496 nscd_socket_use(ricci_modstorage_t)
497 ')
498
499 optional_policy(`
500 oddjob_system_entry(ricci_modstorage_t, ricci_modstorage_exec_t)
501 ')
502
503 optional_policy(`
504 raid_domtrans_mdadm(ricci_modstorage_t)
505 ')