2
# Author: Jamie Strandboge <jamie@canonical.com>
4
# Declare an apparmor variable to help with overrides
5
@{MOZ_LIBDIR}=/@MOZ_LIBDIR@
7
#include <tunables/global>
9
# We want to confine the binaries that match:
10
# /@MOZ_LIBDIR@/@MOZ_APP_NAME@
11
# /@MOZ_LIBDIR@/firefox
13
# /@MOZ_LIBDIR@/firefox.sh
14
/@MOZ_LIBDIR@/firefox{,*[^s][^h]} {
15
#include <abstractions/audio>
16
#include <abstractions/cups-client>
17
#include <abstractions/dbus-session>
18
#include <abstractions/gnome>
19
#include <abstractions/ibus>
20
#include <abstractions/nameservice>
21
#include <abstractions/openssl>
22
#include <abstractions/p11-kit>
25
#include <abstractions/ubuntu-browsers.d/firefox>
30
@{PROC}/[0-9]*/net/if_inet6 r,
31
@{PROC}/[0-9]*/net/ipv6_route r,
32
@{PROC}/[0-9]*/net/dev r,
33
@{PROC}/[0-9]*/net/wireless r,
35
# should maybe be in abstractions
39
/etc/xdg/*buntu/applications/defaults.list r, # for all derivatives
40
/etc/xfce4/defaults.list r,
41
/usr/share/xubuntu/applications/defaults.list r,
42
owner @{HOME}/.local/share/applications/defaults.list r,
43
owner @{HOME}/.local/share/applications/mimeapps.list r,
44
owner @{HOME}/.local/share/applications/mimeinfo.cache r,
47
owner /{,var/}run/shm/shmfd-* rw,
48
owner /{dev,run}/shm/org.chromium.* rwk,
50
/etc/udev/udev.conf r,
51
# Doesn't seem to be required, but noisy. Maybe allow 'r' for 'b*' if needed.
52
# Possibly move to an abstraction if anything else needs it.
53
deny /run/udev/data/** r,
56
/etc/wildmidi/wildmidi.cfg r,
62
/etc/xulrunner-2.0*/ r,
63
/etc/xulrunner-2.0*/** r,
68
deny @{MOZ_LIBDIR}/** w,
69
deny /@MOZ_ADDONDIR@/** w,
70
deny /usr/lib/xulrunner-addons/** w,
71
deny /usr/lib/xulrunner-*/components/*.tmp w,
73
deny /boot/initrd.img* r,
74
deny /boot/vmlinuz* r,
75
deny /var/cache/fontconfig/ w,
76
deny @{HOME}/.local/share/recently-used.xbel r,
79
deny /usr/bin/gconftool-2 x,
81
# These are needed when a new user starts firefox and firefox.sh is used
83
/usr/bin/basename ixr,
90
@{PROC}/[0-9]*/cmdline r,
91
@{PROC}/[0-9]*/mountinfo r,
92
@{PROC}/[0-9]*/stat r,
93
owner @{PROC}/[0-9]*/task/[0-9]*/stat r,
94
@{PROC}/[0-9]*/status r,
95
@{PROC}/filesystems r,
96
@{PROC}/sys/vm/overcommit_memory r,
97
/sys/devices/pci[0-9]*/**/uevent r,
98
/sys/devices/platform/**/uevent r,
99
/sys/devices/pci*/**/{busnum,idVendor,idProduct} r,
100
owner @{HOME}/.thumbnails/*/*.png r,
105
# Needed for the crash reporter
106
owner @{PROC}/[0-9]*/environ r,
107
owner @{PROC}/[0-9]*/auxv r,
110
/sys/devices/system/cpu/ r,
111
/sys/devices/system/cpu/** r,
114
owner @{PROC}/[0-9]*/statm r,
115
owner @{PROC}/[0-9]*/smaps r,
117
# Needed for container to work in xul builds
118
/usr/lib/xulrunner-*/plugin-container ixr,
120
# allow access to documentation and other files the user may want to look
121
# at in /usr and /opt
127
# so browsing directories works
131
# Default profile allows downloads to ~/Downloads and uploads from ~/Public
133
owner @{HOME}/Public/ r,
134
owner @{HOME}/Public/* r,
135
owner @{HOME}/Downloads/ r,
136
owner @{HOME}/Downloads/* rw,
138
# per-user firefox configuration
139
owner @{HOME}/.{firefox,mozilla}/ rw,
140
owner @{HOME}/.{firefox,mozilla}/** rw,
141
owner @{HOME}/.{firefox,mozilla}/**/*.{db,parentlock,sqlite}* k,
142
owner @{HOME}/.{firefox,mozilla}/plugins/** rm,
143
owner @{HOME}/.{firefox,mozilla}/**/plugins/** rm,
144
owner @{HOME}/.gnome2/firefox*-bin-* rw,
145
owner @{HOME}/.cache/mozilla/{,@MOZ_APP_NAME@/} rw,
146
owner @{HOME}/.cache/mozilla/@MOZ_APP_NAME@/** rw,
147
owner @{HOME}/.cache/mozilla/@MOZ_APP_NAME@/**/*.sqlite k,
151
# /usr/share/.../extensions/... is already covered by '/usr/** r', above.
152
# Allow 'x' for downloaded extensions, but inherit policy for safety
153
owner @{HOME}/.mozilla/**/extensions/** mixr,
155
deny @{MOZ_LIBDIR}/update.test w,
156
deny /usr/lib/mozilla/extensions/**/ w,
157
deny /usr/lib/xulrunner-addons/extensions/**/ w,
158
deny /usr/share/mozilla/extensions/**/ w,
159
deny /usr/share/mozilla/ w,
161
# Miscellaneous (to be abstracted)
162
# Ideally these would use a child profile. They are all ELF executables
163
# so running with 'Ux', while not ideal, is ok because we will at least
164
# benefit from glibc's secure execute.
165
/usr/bin/mkfifo Uxr, # investigate
169
# Site-specific additions and overrides. See local/README for details.
170
#include <local/usr.bin.firefox>