~ubuntu-branches/ubuntu/wily/apparmor/wily

« back to all changes in this revision

Viewing changes to profiles/apparmor.d/usr.bin.chromium-browser

  • Committer: Bazaar Package Importer
  • Author(s): Kees Cook
  • Date: 2011-04-27 10:38:07 UTC
  • mfrom: (5.1.118 natty)
  • Revision ID: james.westby@ubuntu.com-20110427103807-ym3rhwys6o84ith0
Tags: 2.6.1-2
debian/copyright: clarify for some full organization names.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Author: Jamie Strandboge <jamie@canonical.com>
 
2
#include <tunables/global>
 
3
 
 
4
/usr/lib/chromium-browser/chromium-browser {
 
5
  #include <abstractions/audio>
 
6
  #include <abstractions/base>
 
7
  #include <abstractions/cups-client>
 
8
  #include <abstractions/dbus-session>
 
9
  #include <abstractions/fonts>
 
10
  #include <abstractions/freedesktop.org>
 
11
  #include <abstractions/gnome>
 
12
  #include <abstractions/nameservice>
 
13
  #include <abstractions/user-tmp>
 
14
 
 
15
  # This include specifies which ubuntu-browsers.d abstractions to use. Eg, if
 
16
  # you want access to productivity applications, adjust the following file
 
17
  # accordingly.
 
18
  #include <abstractions/ubuntu-browsers.d/chromium-browser>
 
19
 
 
20
  # Networking
 
21
  network inet stream,
 
22
  network inet6 stream,
 
23
  @{PROC}/[0-9]*/net/if_inet6 r,
 
24
  @{PROC}/[0-9]*/net/ipv6_route r,
 
25
 
 
26
  # Should maybe be in abstractions
 
27
  /etc/mime.types r,
 
28
  /etc/mailcap r,
 
29
  /etc/xdg/xubuntu/applications/defaults.list r,
 
30
  owner @{HOME}/.local/share/applications/defaults.list r,
 
31
  owner @{HOME}/.local/share/applications/mimeinfo.cache r,
 
32
 
 
33
  @{PROC}/[0-9]*/fd/ r,
 
34
  @{PROC}/filesystems r,
 
35
  @{PROC}/ r,
 
36
  @{PROC}/[0-9]*/cmdline r,
 
37
  @{PROC}/[0-9]*/stat r,
 
38
  @{PROC}/[0-9]*/status r,
 
39
 
 
40
  # Needed for the crash reporter
 
41
  owner @{PROC}/[0-9]*/auxv r,
 
42
 
 
43
  # chromium mmaps all kinds of things for speed.
 
44
  /etc/passwd m,
 
45
  /usr/share/fonts/truetype/**/*.tt[cf] m,
 
46
  /usr/share/fonts/**/*.pfb m,
 
47
  /usr/share/mime/mime.cache m,
 
48
  /usr/share/icons/**/*.cache m,
 
49
  owner /dev/shm/pulse-shm* m,
 
50
  owner @{HOME}/.local/share/mime/mime.cache m,
 
51
  owner /tmp/** m,
 
52
 
 
53
  @{PROC}/sys/kernel/shmmax r,
 
54
  owner /dev/shm/{,.}org.chromium.* mrw,
 
55
 
 
56
  /usr/lib/chromium-browser/*.pak mr,
 
57
  /usr/lib/chromium-browser/locales/* mr,
 
58
 
 
59
  # Noisy
 
60
  deny /usr/lib/chromium-browser/** w,
 
61
 
 
62
  # Make browsing directories work
 
63
  / r,
 
64
  /**/ r,
 
65
 
 
66
  # Allow access to documentation and other files the user may want to look
 
67
  # at in /usr
 
68
  /usr/{include,share,src}** r,
 
69
 
 
70
  # Default profile allows downloads to ~/Downloads and uploads from ~/Public
 
71
  owner @{HOME}/ r,
 
72
  owner @{HOME}/Public/ r,
 
73
  owner @{HOME}/Public/* r,
 
74
  owner @{HOME}/Downloads/ r,
 
75
  owner @{HOME}/Downloads/* rw,
 
76
 
 
77
  # Helpers
 
78
  /usr/bin/xdg-open ixr,
 
79
  /usr/bin/gnome-open ixr,
 
80
  /usr/bin/gvfs-open ixr,
 
81
  # TODO: kde, xfce
 
82
 
 
83
  # Importing firefox settings (requires 'r' access to @{HOME}/.mozilla/**
 
84
  # which is provided by abstractions/ubuntu-browsers.d/user-files).
 
85
  @{PROC}/[0-9]*/oom_adj w,
 
86
  /etc/firefox/profile/bookmarks.html r,
 
87
  owner @{HOME}/.mozilla/** k,
 
88
 
 
89
  # Chromium configuration
 
90
  owner @{HOME}/.pki/nssdb/* rwk,
 
91
  owner @{HOME}/.cache/chromium/ rw,
 
92
  owner @{HOME}/.cache/chromium/** rw,
 
93
  owner @{HOME}/.cache/chromium/Cache/* mr,
 
94
  owner @{HOME}/.config/chromium/ rw,
 
95
  owner @{HOME}/.config/chromium/** rwk,
 
96
  owner @{HOME}/.config/chromium/**/Cache/* mr,
 
97
  owner @{HOME}/.config/chromium/Dictionaries/*.bdic mr,
 
98
  owner @{HOME}/.config/chromium/**/Dictionaries/*.bdic mr,
 
99
 
 
100
  # Allow transitions to ourself and our sandbox
 
101
  /usr/lib/chromium-browser/chromium-browser ix,
 
102
  /usr/lib/chromium-browser/chromium-browser-sandbox cx -> chromium_browser_sandbox,
 
103
 
 
104
  # TODO: child profile
 
105
  /bin/ps Uxr,
 
106
  /usr/lib/chromium-browser/xdg-settings Ux,
 
107
 
 
108
  # Site-specific additions and overrides. See local/README for details.
 
109
  #include <local/usr.bin.chromium-browser>
 
110
 
 
111
  profile chromium_browser_sandbox {
 
112
    # Be fanatical since it is setuid root and don't use an abstraction
 
113
    /lib/libgcc_s.so* mr,
 
114
    /lib{,32,64}/libm-*.so* mr,
 
115
    /lib/@{multiarch}/libm-*.so* mr,
 
116
    /lib{,32,64}/libpthread-*.so* mr,
 
117
    /lib/@{multiarch}/libpthread-*.so* mr,
 
118
    /lib{,32,64}/libc-*.so* mr,
 
119
    /lib/@{multiarch}/libc-*.so* mr,
 
120
    /lib{,32,64}/libld-*.so* mr,
 
121
    /lib/@{multiarch}/libld-*.so* mr,
 
122
    /lib{,32,64}/ld-*.so* mr,
 
123
    /lib/@{multiarch}/ld-*.so* mr,
 
124
    /lib/tls/*/{cmov,nosegneg}/libm-*.so* mr,
 
125
    /lib/tls/*/{cmov,nosegneg}/libpthread-*.so* mr,
 
126
    /lib/tls/*/{cmov,nosegneg}/libc-*.so* mr,
 
127
    /usr/lib/libstdc++.so* mr,
 
128
    /etc/ld.so.cache r,
 
129
 
 
130
    # Required for dropping into PID namespace. Keep in mind that until the
 
131
    # process drops this capability it can escape confinement, but once it
 
132
    # drops CAP_SYS_ADMIN we are ok.
 
133
    capability sys_admin,
 
134
 
 
135
    # All of these are for sanely dropping from root and chrooting
 
136
    capability chown,
 
137
    capability fsetid,
 
138
    capability setgid,
 
139
    capability setuid,
 
140
    capability dac_override,
 
141
    capability sys_chroot,
 
142
 
 
143
    # *Sigh*
 
144
    capability sys_ptrace,
 
145
 
 
146
    @{PROC}/ r,
 
147
    @{PROC}/[0-9]*/fd/ r,
 
148
    @{PROC}/[0-9]*/oom_adj w,
 
149
 
 
150
    /usr/bin/chromium-browser r,
 
151
    /usr/lib/chromium-browser/chromium-browser Px,
 
152
    /usr/lib/chromium-browser/chromium-browser-sandbox r,
 
153
 
 
154
    owner /tmp/** rw,
 
155
  }
 
156
}