]> git.ipfire.org Git - people/stevee/selinux-policy.git/blame - policy/modules/apps/mozilla.te
Add virt_home_t, allow init to setattr on xserver_tmp_t and relabel it
[people/stevee/selinux-policy.git] / policy / modules / apps / mozilla.te
CommitLineData
4b76ea5f 1policy_module(mozilla, 2.2.2)
9105f90b
CP
2
3########################################
4#
5# Declarations
6#
7
56e1b3d2
CP
8## <desc>
9## <p>
10## Control mozilla content access
11## </p>
12## </desc>
0bfccda4 13gen_tunable(mozilla_read_content, false)
56e1b3d2 14
296273a7
CP
15type mozilla_t;
16type mozilla_exec_t;
17typealias mozilla_t alias { user_mozilla_t staff_mozilla_t sysadm_mozilla_t };
18typealias mozilla_t alias { auditadm_mozilla_t secadm_mozilla_t };
19application_domain(mozilla_t, mozilla_exec_t)
20ubac_constrained(mozilla_t)
21
9105f90b
CP
22type mozilla_conf_t;
23files_config_file(mozilla_conf_t)
24
296273a7
CP
25type mozilla_home_t;
26typealias mozilla_home_t alias { user_mozilla_home_t staff_mozilla_home_t sysadm_mozilla_home_t };
27typealias mozilla_home_t alias { auditadm_mozilla_home_t secadm_mozilla_home_t };
3eaa9939 28files_poly_member(mozilla_home_t)
296273a7
CP
29userdom_user_home_content(mozilla_home_t)
30
31type mozilla_tmpfs_t;
32typealias mozilla_tmpfs_t alias { user_mozilla_tmpfs_t staff_mozilla_tmpfs_t sysadm_mozilla_tmpfs_t };
33typealias mozilla_tmpfs_t alias { auditadm_mozilla_tmpfs_t secadm_mozilla_tmpfs_t };
34files_tmpfs_file(mozilla_tmpfs_t)
35ubac_constrained(mozilla_tmpfs_t)
36
3eaa9939
DW
37type mozilla_plugin_t;
38type mozilla_plugin_exec_t;
39application_domain(mozilla_plugin_t, mozilla_plugin_exec_t)
40role system_r types mozilla_plugin_t;
41
ef98a374
DW
42type mozilla_plugin_tmp_t;
43files_tmp_file(mozilla_plugin_tmp_t)
44
f5b49a5e
DW
45type mozilla_plugin_tmpfs_t;
46files_tmpfs_file(mozilla_plugin_tmpfs_t)
47ubac_constrained(mozilla_plugin_tmpfs_t)
48
3eaa9939
DW
49permissive mozilla_plugin_t;
50
296273a7
CP
51########################################
52#
53# Local policy
54#
55
56allow mozilla_t self:capability { sys_nice setgid setuid };
57allow mozilla_t self:process { sigkill signal setsched getsched setrlimit };
58allow mozilla_t self:fifo_file rw_fifo_file_perms;
59allow mozilla_t self:shm { unix_read unix_write read write destroy create };
60allow mozilla_t self:sem create_sem_perms;
61allow mozilla_t self:socket create_socket_perms;
62allow mozilla_t self:unix_stream_socket { listen accept };
63# Browse the web, connect to printer
64allow mozilla_t self:tcp_socket create_socket_perms;
65allow mozilla_t self:netlink_route_socket r_netlink_socket_perms;
66
67# for bash - old mozilla binary
68can_exec(mozilla_t, mozilla_exec_t)
69
70# X access, Home files
71manage_dirs_pattern(mozilla_t, mozilla_home_t, mozilla_home_t)
72manage_files_pattern(mozilla_t, mozilla_home_t, mozilla_home_t)
73manage_lnk_files_pattern(mozilla_t, mozilla_home_t, mozilla_home_t)
74userdom_search_user_home_dirs(mozilla_t)
b77daab0 75userdom_user_home_dir_filetrans(mozilla_t, mozilla_home_t, dir)
296273a7
CP
76
77# Mozpluggerrc
78allow mozilla_t mozilla_conf_t:file read_file_perms;
79
80manage_files_pattern(mozilla_t, mozilla_tmpfs_t, mozilla_tmpfs_t)
81manage_lnk_files_pattern(mozilla_t, mozilla_tmpfs_t, mozilla_tmpfs_t)
82manage_fifo_files_pattern(mozilla_t, mozilla_tmpfs_t, mozilla_tmpfs_t)
83manage_sock_files_pattern(mozilla_t, mozilla_tmpfs_t, mozilla_tmpfs_t)
84fs_tmpfs_filetrans(mozilla_t, mozilla_tmpfs_t, { file lnk_file sock_file fifo_file })
85
86kernel_read_kernel_sysctls(mozilla_t)
87kernel_read_network_state(mozilla_t)
88# Access /proc, sysctl
89kernel_read_system_state(mozilla_t)
90kernel_read_net_sysctls(mozilla_t)
91
b77daab0 92# Look for plugins
296273a7
CP
93corecmd_list_bin(mozilla_t)
94# for bash - old mozilla binary
95corecmd_exec_shell(mozilla_t)
96corecmd_exec_bin(mozilla_t)
97
98# Browse the web, connect to printer
99corenet_all_recvfrom_unlabeled(mozilla_t)
100corenet_all_recvfrom_netlabel(mozilla_t)
101corenet_tcp_sendrecv_generic_if(mozilla_t)
102corenet_raw_sendrecv_generic_if(mozilla_t)
c1262146
CP
103corenet_tcp_sendrecv_generic_node(mozilla_t)
104corenet_raw_sendrecv_generic_node(mozilla_t)
296273a7
CP
105corenet_tcp_sendrecv_http_port(mozilla_t)
106corenet_tcp_sendrecv_http_cache_port(mozilla_t)
3eaa9939
DW
107corenet_tcp_sendrecv_squid_port(mozilla_t)
108corenet_tcp_connect_flash_port(mozilla_t)
296273a7
CP
109corenet_tcp_sendrecv_ftp_port(mozilla_t)
110corenet_tcp_sendrecv_ipp_port(mozilla_t)
111corenet_tcp_connect_http_port(mozilla_t)
112corenet_tcp_connect_http_cache_port(mozilla_t)
3eaa9939 113corenet_tcp_connect_squid_port(mozilla_t)
296273a7
CP
114corenet_tcp_connect_ftp_port(mozilla_t)
115corenet_tcp_connect_ipp_port(mozilla_t)
116corenet_tcp_connect_generic_port(mozilla_t)
b77daab0 117corenet_tcp_connect_soundd_port(mozilla_t)
296273a7
CP
118corenet_sendrecv_http_client_packets(mozilla_t)
119corenet_sendrecv_http_cache_client_packets(mozilla_t)
3eaa9939 120corenet_sendrecv_squid_client_packets(mozilla_t)
296273a7
CP
121corenet_sendrecv_ftp_client_packets(mozilla_t)
122corenet_sendrecv_ipp_client_packets(mozilla_t)
123corenet_sendrecv_generic_client_packets(mozilla_t)
124# Should not need other ports
125corenet_dontaudit_tcp_sendrecv_generic_port(mozilla_t)
126corenet_dontaudit_tcp_bind_generic_port(mozilla_t)
06625d30 127corenet_tcp_connect_speech_port(mozilla_t)
296273a7
CP
128
129dev_read_urand(mozilla_t)
130dev_read_rand(mozilla_t)
131dev_write_sound(mozilla_t)
132dev_read_sound(mozilla_t)
133dev_dontaudit_rw_dri(mozilla_t)
134dev_getattr_sysfs_dirs(mozilla_t)
135
b77daab0
CP
136domain_dontaudit_read_all_domains_state(mozilla_t)
137
296273a7
CP
138files_read_etc_runtime_files(mozilla_t)
139files_read_usr_files(mozilla_t)
140files_read_etc_files(mozilla_t)
141# /var/lib
142files_read_var_lib_files(mozilla_t)
143# interacting with gstreamer
144files_read_var_files(mozilla_t)
145files_read_var_symlinks(mozilla_t)
146files_dontaudit_getattr_boot_dirs(mozilla_t)
147
148fs_search_auto_mountpoints(mozilla_t)
149fs_list_inotifyfs(mozilla_t)
150fs_rw_tmpfs_files(mozilla_t)
151
152term_dontaudit_getattr_pty_dirs(mozilla_t)
153
154logging_send_syslog_msg(mozilla_t)
155
156miscfiles_read_fonts(mozilla_t)
157miscfiles_read_localization(mozilla_t)
3c1e8ff6 158miscfiles_dontaudit_setattr_fonts_dirs(mozilla_t)
296273a7
CP
159
160# Browse the web, connect to printer
161sysnet_dns_name_resolve(mozilla_t)
162
3c1e8ff6 163userdom_use_user_ptys(mozilla_t)
296273a7
CP
164
165xserver_user_x_domain_template(mozilla, mozilla_t, mozilla_tmpfs_t)
166xserver_dontaudit_read_xdm_tmp_files(mozilla_t)
167xserver_dontaudit_getattr_xdm_tmp_sockets(mozilla_t)
168
169tunable_policy(`allow_execmem',`
170 allow mozilla_t self:process { execmem execstack };
171')
172
173tunable_policy(`use_nfs_home_dirs',`
174 fs_manage_nfs_dirs(mozilla_t)
175 fs_manage_nfs_files(mozilla_t)
176 fs_manage_nfs_symlinks(mozilla_t)
177')
178
179tunable_policy(`use_samba_home_dirs',`
180 fs_manage_cifs_dirs(mozilla_t)
181 fs_manage_cifs_files(mozilla_t)
182 fs_manage_cifs_symlinks(mozilla_t)
183')
184
185# Uploads, local html
186tunable_policy(`mozilla_read_content && use_nfs_home_dirs',`
187 fs_list_auto_mountpoints(mozilla_t)
188 files_list_home(mozilla_t)
189 fs_read_nfs_files(mozilla_t)
190 fs_read_nfs_symlinks(mozilla_t)
191
192',`
193 files_dontaudit_list_home(mozilla_t)
194 fs_dontaudit_list_auto_mountpoints(mozilla_t)
195 fs_dontaudit_read_nfs_files(mozilla_t)
196 fs_dontaudit_list_nfs(mozilla_t)
197')
198
199tunable_policy(`mozilla_read_content && use_samba_home_dirs',`
200 fs_list_auto_mountpoints(mozilla_t)
201 files_list_home(mozilla_t)
202 fs_read_cifs_files(mozilla_t)
203 fs_read_cifs_symlinks(mozilla_t)
204',`
205 files_dontaudit_list_home(mozilla_t)
206 fs_dontaudit_list_auto_mountpoints(mozilla_t)
207 fs_dontaudit_read_cifs_files(mozilla_t)
208 fs_dontaudit_list_cifs(mozilla_t)
209')
210
211tunable_policy(`mozilla_read_content',`
212 userdom_list_user_tmp(mozilla_t)
213 userdom_read_user_tmp_files(mozilla_t)
214 userdom_read_user_tmp_symlinks(mozilla_t)
215 userdom_read_user_home_content_files(mozilla_t)
216 userdom_read_user_home_content_symlinks(mozilla_t)
217
218 ifdef(`enable_mls',`',`
219 fs_search_removable(mozilla_t)
220 fs_read_removable_files(mozilla_t)
221 fs_read_removable_symlinks(mozilla_t)
222 ')
223',`
224 files_dontaudit_list_tmp(mozilla_t)
225 files_dontaudit_list_home(mozilla_t)
226 fs_dontaudit_list_removable(mozilla_t)
227 fs_dontaudit_read_removable_files(mozilla_t)
228 userdom_dontaudit_list_user_tmp(mozilla_t)
229 userdom_dontaudit_read_user_tmp_files(mozilla_t)
230 userdom_dontaudit_list_user_home_dirs(mozilla_t)
231 userdom_dontaudit_read_user_home_content_files(mozilla_t)
232')
233
296273a7
CP
234optional_policy(`
235 apache_read_user_scripts(mozilla_t)
236 apache_read_user_content(mozilla_t)
237')
238
239optional_policy(`
240 automount_dontaudit_getattr_tmp_dirs(mozilla_t)
241')
242
243optional_policy(`
244 cups_read_rw_config(mozilla_t)
245 cups_dbus_chat(mozilla_t)
246')
247
248optional_policy(`
249 dbus_system_bus_client(mozilla_t)
250 dbus_session_bus_client(mozilla_t)
b77daab0
CP
251
252 optional_policy(`
253 networkmanager_dbus_chat(mozilla_t)
254 ')
296273a7
CP
255')
256
257optional_policy(`
258 gnome_stream_connect_gconf(mozilla_t)
06625d30 259 gnome_manage_config(mozilla_t)
3eaa9939 260 gnome_manage_gconf_home_files(mozilla_t)
296273a7
CP
261')
262
263optional_policy(`
264 java_domtrans(mozilla_t)
265')
266
267optional_policy(`
268 lpd_domtrans_lpr(mozilla_t)
269')
270
271optional_policy(`
272 mplayer_domtrans(mozilla_t)
273 mplayer_read_user_home_files(mozilla_t)
274')
275
276optional_policy(`
277 nscd_socket_use(mozilla_t)
278')
279
3eaa9939
DW
280optional_policy(`
281 nsplugin_manage_rw(mozilla_t)
282 nsplugin_manage_home_files(mozilla_t)
283')
284
3c1e8ff6
CP
285optional_policy(`
286 pulseaudio_exec(mozilla_t)
287 pulseaudio_stream_connect(mozilla_t)
288 pulseaudio_manage_home_files(mozilla_t)
289')
290
296273a7
CP
291optional_policy(`
292 thunderbird_domtrans(mozilla_t)
293')
3eaa9939
DW
294
295########################################
296#
297# mozilla_plugin local policy
298#
f5b49a5e 299allow mozilla_plugin_t self:process { setsched signal_perms execmem };
4e6b3f6d
DW
300allow mozilla_plugin_t self:netlink_route_socket r_netlink_socket_perms;
301allow mozilla_plugin_t self:tcp_socket create_socket_perms;
302allow mozilla_plugin_t self:udp_socket create_socket_perms;
3eaa9939
DW
303
304allow mozilla_plugin_t self:sem create_sem_perms;
305allow mozilla_plugin_t self:shm create_shm_perms;
306allow mozilla_plugin_t self:fifo_file manage_fifo_file_perms;
307allow mozilla_plugin_t self:unix_stream_socket { connectto create_stream_socket_perms };
308
7cfb9354 309can_exec(mozilla_plugin_t, mozilla_home_t)
4e6b3f6d 310read_files_pattern(mozilla_plugin_t, mozilla_home_t, mozilla_home_t)
3eaa9939 311
ef98a374
DW
312manage_dirs_pattern(mozilla_plugin_t, mozilla_plugin_tmp_t, mozilla_plugin_tmp_t)
313manage_files_pattern(mozilla_plugin_t, mozilla_plugin_tmp_t, mozilla_plugin_tmp_t)
314files_tmp_filetrans(mozilla_plugin_t, mozilla_plugin_tmp_t, { dir file })
ddd1ccaa 315can_exec(mozilla_plugin_t, mozilla_plugin_tmp_t)
ef98a374 316
f5b49a5e
DW
317manage_files_pattern(mozilla_plugin_t, mozilla_plugin_tmpfs_t, mozilla_plugin_tmpfs_t)
318manage_lnk_files_pattern(mozilla_plugin_t, mozilla_plugin_tmpfs_t, mozilla_plugin_tmpfs_t)
319manage_fifo_files_pattern(mozilla_plugin_t, mozilla_plugin_tmpfs_t, mozilla_plugin_tmpfs_t)
320manage_sock_files_pattern(mozilla_plugin_t, mozilla_plugin_tmpfs_t, mozilla_plugin_tmpfs_t)
321fs_tmpfs_filetrans(mozilla_plugin_t, mozilla_plugin_tmpfs_t, { file lnk_file sock_file fifo_file })
322
0b8f4cfe
DW
323can_exec(mozilla_plugin_t, mozilla_exec_t)
324
3eaa9939
DW
325kernel_read_kernel_sysctls(mozilla_plugin_t)
326kernel_read_system_state(mozilla_plugin_t)
327kernel_request_load_module(mozilla_plugin_t)
328
329corecmd_exec_bin(mozilla_plugin_t)
330corecmd_exec_shell(mozilla_plugin_t)
331
b45aaab9
DW
332corenet_tcp_connect_flash_port(mozilla_plugin_t)
333corenet_tcp_connect_streaming_port(mozilla_plugin_t)
334corenet_tcp_connect_pulseaudio_port(mozilla_plugin_t)
335corenet_tcp_connect_http_port(mozilla_plugin_t)
336corenet_tcp_connect_http_cache_port(mozilla_plugin_t)
337corenet_tcp_connect_squid_port(mozilla_plugin_t)
338corenet_tcp_connect_ipp_port(mozilla_plugin_t)
339corenet_tcp_connect_speech_port(mozilla_plugin_t)
340
3eaa9939 341dev_read_urand(mozilla_plugin_t)
f5b49a5e 342dev_read_video_dev(mozilla_plugin_t)
b45aaab9 343dev_write_video_dev(mozilla_plugin_t)
f5b49a5e 344dev_read_sysfs(mozilla_plugin_t)
0b8f4cfe
DW
345dev_read_sound(mozilla_plugin_t)
346dev_write_sound(mozilla_plugin_t)
4e6b3f6d 347dev_dontaudit_rw_dri(mozilla_plugin_t)
3eaa9939
DW
348
349domain_use_interactive_fds(mozilla_plugin_t)
350domain_dontaudit_read_all_domains_state(mozilla_plugin_t)
351
352files_read_config_files(mozilla_plugin_t)
353files_read_usr_files(mozilla_plugin_t)
354
dfe675b8 355fs_getattr_tmpfs(mozilla_plugin_t)
ef98a374 356
751ec039
DW
357application_dontaudit_signull(mozilla_plugin_t)
358
3eaa9939 359miscfiles_read_localization(mozilla_plugin_t)
f5b49a5e 360miscfiles_read_fonts(mozilla_plugin_t)
3eaa9939 361
79bff2bb
DW
362sysnet_dns_name_resolve(mozilla_plugin_t)
363
3eaa9939
DW
364term_getattr_all_ttys(mozilla_plugin_t)
365term_getattr_all_ptys(mozilla_plugin_t)
366
ef98a374 367userdom_rw_user_tmpfs_files(mozilla_plugin_t)
5212892e 368userdom_delete_user_tmpfs_files(mozilla_plugin_t)
f5b49a5e
DW
369userdom_stream_connect(mozilla_plugin_t)
370userdom_dontaudit_use_user_ptys(mozilla_plugin_t)
ddd1ccaa 371userdom_manage_user_tmp_sockets(mozilla_plugin_t)
4e6b3f6d
DW
372
373userdom_list_user_tmp(mozilla_plugin_t)
d1c6ba20 374userdom_manage_user_tmp_dirs(mozilla_plugin_t)
4e6b3f6d
DW
375userdom_read_user_tmp_files(mozilla_plugin_t)
376userdom_read_user_tmp_symlinks(mozilla_plugin_t)
377userdom_read_user_home_content_files(mozilla_plugin_t)
5212892e 378userdom_read_user_home_content_files(mozilla_plugin_t)
4e6b3f6d 379userdom_read_user_home_content_symlinks(mozilla_plugin_t)
f5b49a5e 380
0b8f4cfe
DW
381optional_policy(`
382 alsa_read_rw_config(mozilla_plugin_t)
b45aaab9 383 alsa_read_home_files(mozilla_plugin_t)
0b8f4cfe
DW
384')
385
f5b49a5e 386optional_policy(`
4e6b3f6d 387 dbus_session_bus_client(mozilla_plugin_t)
f5b49a5e
DW
388 dbus_read_lib_files(mozilla_plugin_t)
389')
390
391optional_policy(`
79bff2bb 392 gnome_manage_config(mozilla_plugin_t)
5ef740e5 393 gnome_setattr_home_config(mozilla_plugin_t)
f5b49a5e 394')
ef98a374 395
3eaa9939
DW
396optional_policy(`
397 nsplugin_domtrans(mozilla_plugin_t)
398 nsplugin_rw_exec(mozilla_plugin_t)
da073333 399 nsplugin_manage_home_dirs(mozilla_plugin_t)
f5b49a5e 400 nsplugin_manage_home_files(mozilla_plugin_t)
79bff2bb 401 nsplugin_user_home_dir_filetrans(mozilla_plugin_t, dir)
6ed3f15e 402 nsplugin_signal(mozilla_plugin_t)
f5b49a5e
DW
403')
404
405optional_policy(`
b45aaab9
DW
406 pulseaudio_exec(mozilla_plugin_t)
407 pulseaudio_stream_connect(mozilla_plugin_t)
79bff2bb 408 pulseaudio_setattr_home_dir(mozilla_plugin_t)
b45aaab9 409 pulseaudio_manage_home_files(mozilla_plugin_t)
3eaa9939
DW
410')
411
412optional_policy(`
413 xserver_read_xdm_pid(mozilla_plugin_t)
414 xserver_stream_connect(mozilla_plugin_t)
0b8f4cfe 415 xserver_use_user_fonts(mozilla_plugin_t)
ddd1ccaa 416 xserver_read_user_iceauth(mozilla_plugin_t)
3eaa9939 417')