]> git.ipfire.org Git - people/stevee/selinux-policy.git/blob - refpolicy/policy/modules/services/ldap.te
add ddclient, bug 1523
[people/stevee/selinux-policy.git] / refpolicy / policy / modules / services / ldap.te
1
2 policy_module(ldap,1.2.0)
3
4 ########################################
5 #
6 # Declarations
7 #
8
9 type slapd_t;
10 type slapd_exec_t;
11 init_daemon_domain(slapd_t,slapd_exec_t)
12
13 type slapd_cert_t;
14 files_type(slapd_cert_t)
15
16 type slapd_db_t;
17 files_type(slapd_db_t)
18
19 type slapd_etc_t;
20 files_config_file(slapd_etc_t)
21
22 type slapd_lock_t;
23 files_lock_file(slapd_lock_t)
24
25 type slapd_replog_t;
26 files_type(slapd_replog_t)
27
28 type slapd_tmp_t;
29 files_tmp_file(slapd_tmp_t)
30
31 type slapd_var_run_t;
32 files_pid_file(slapd_var_run_t)
33
34 ########################################
35 #
36 # Local policy
37 #
38
39 # should not need kill
40 # cjp: why net_raw?
41 allow slapd_t self:capability { kill setgid setuid net_raw dac_override dac_read_search };
42 dontaudit slapd_t self:capability sys_tty_config;
43 allow slapd_t self:process setsched;
44 allow slapd_t self:fifo_file { read write };
45 allow slapd_t self:netlink_route_socket r_netlink_socket_perms;
46 allow slapd_t self:udp_socket create_socket_perms;
47 #slapd needs to listen and accept needed by ldapsearch (slapd needs to accept from ldapseach)
48 allow slapd_t self:tcp_socket create_stream_socket_perms;
49
50 allow slapd_t slapd_cert_t:dir r_dir_perms;
51 allow slapd_t slapd_cert_t:file r_file_perms;
52 allow slapd_t slapd_cert_t:lnk_file { getattr read };
53
54 # Allow access to the slapd databases
55 allow slapd_t slapd_db_t:dir create_dir_perms;
56 allow slapd_t slapd_db_t:file create_file_perms;
57 allow slapd_t slapd_db_t:lnk_file create_lnk_perms;
58
59 allow slapd_t slapd_etc_t:file { getattr read };
60
61 allow slapd_t slapd_lock_t:file create_file_perms;
62 files_lock_filetrans(slapd_t,slapd_lock_t,file)
63
64 # Allow access to write the replication log (should tighten this)
65 allow slapd_t slapd_replog_t:dir create_dir_perms;
66 allow slapd_t slapd_replog_t:file create_file_perms;
67 allow slapd_t slapd_replog_t:lnk_file create_lnk_perms;
68
69 allow slapd_t slapd_tmp_t:dir create_dir_perms;
70 allow slapd_t slapd_tmp_t:file create_file_perms;
71 files_tmp_filetrans(slapd_t, slapd_tmp_t, { file dir })
72
73 allow slapd_t slapd_var_run_t:file create_file_perms;
74 allow slapd_t slapd_var_run_t:dir rw_dir_perms;
75 files_pid_filetrans(slapd_t,slapd_var_run_t,file)
76
77 kernel_read_system_state(slapd_t)
78 kernel_read_kernel_sysctls(slapd_t)
79 kernel_tcp_recvfrom(slapd_t)
80
81 corenet_tcp_sendrecv_all_if(slapd_t)
82 corenet_udp_sendrecv_all_if(slapd_t)
83 corenet_raw_sendrecv_all_if(slapd_t)
84 corenet_tcp_sendrecv_all_nodes(slapd_t)
85 corenet_udp_sendrecv_all_nodes(slapd_t)
86 corenet_raw_sendrecv_all_nodes(slapd_t)
87 corenet_tcp_sendrecv_all_ports(slapd_t)
88 corenet_udp_sendrecv_all_ports(slapd_t)
89 corenet_non_ipsec_sendrecv(slapd_t)
90 corenet_tcp_bind_all_nodes(slapd_t)
91 corenet_udp_bind_all_nodes(slapd_t)
92 corenet_tcp_bind_ldap_port(slapd_t)
93 corenet_tcp_connect_all_ports(slapd_t)
94
95 dev_read_urand(slapd_t)
96 dev_read_sysfs(slapd_t)
97
98 fs_getattr_all_fs(slapd_t)
99 fs_search_auto_mountpoints(slapd_t)
100
101 term_dontaudit_use_console(slapd_t)
102
103 domain_use_interactive_fds(slapd_t)
104
105 files_read_etc_files(slapd_t)
106 files_read_etc_runtime_files(slapd_t)
107 files_read_usr_files(slapd_t)
108 files_list_var_lib(slapd_t)
109
110 init_use_fds(slapd_t)
111 init_use_script_ptys(slapd_t)
112
113 libs_use_ld_so(slapd_t)
114 libs_use_shared_libs(slapd_t)
115
116 logging_send_syslog_msg(slapd_t)
117
118 miscfiles_read_certs(slapd_t)
119 miscfiles_read_localization(slapd_t)
120
121 sysnet_read_config(slapd_t)
122
123 userdom_dontaudit_use_unpriv_user_fds(slapd_t)
124 userdom_dontaudit_search_sysadm_home_dirs(slapd_t)
125
126 ifdef(`targeted_policy',`
127 #reh slapcat will want to talk to the terminal
128 term_use_generic_ptys(slapd_t)
129 term_use_unallocated_ttys(slapd_t)
130
131 userdom_search_generic_user_home_dirs(slapd_t)
132 #need to be able to read ldif files created by root
133 # cjp: fix to not use templated interface:
134 userdom_read_user_home_content_files(user,slapd_t)
135
136 term_dontaudit_use_unallocated_ttys(slapd_t)
137 term_dontaudit_use_generic_ptys(slapd_t)
138 files_dontaudit_read_root_files(slapd_t)
139 ')
140
141 optional_policy(`
142 kerberos_use(slapd_t)
143 ')
144
145 optional_policy(`
146 nis_use_ypbind(slapd_t)
147 ')
148
149 optional_policy(`
150 seutil_sigchld_newrole(slapd_t)
151 ')
152
153 optional_policy(`
154 udev_read_db(slapd_t)
155 ')