Файловый менеджер - Редактировать - /var/www/html/apparmor.d.zip
Ðазад
PK ! ?Dkզ � nvidia_modprobenu �[��� # vim:syntax=apparmor abi <abi/3.0>, include <tunables/global> profile nvidia_modprobe { include <abstractions/base> # Capabilities capability chown, capability mknod, capability setuid, capability sys_admin, # Main executable /usr/bin/nvidia-modprobe mr, # Other executables /usr/bin/kmod Cx -> kmod, # System files /dev/nvidia-modeset w, /dev/nvidia-uvm w, /dev/nvidia-uvm-tools w, @{sys}/bus/pci/devices/ r, @{sys}/devices/@{pci_bus}/**/config r, @{PROC}/devices r, @{PROC}/driver/nvidia/params r, @{PROC}/modules r, @{PROC}/sys/kernel/modprobe r, # Child profiles profile kmod { include <abstractions/base> # Capabilities capability sys_module, # Main executable /usr/bin/kmod mrix, # Other executables /{,usr/}bin/{,ba,da}sh ix, # System files /etc/modprobe.d/{,*.conf} r, /etc/nvidia/current/*.conf r, @{sys}/module/ipmi_devintf/initstate r, @{sys}/module/ipmi_msghandler/initstate r, @{sys}/module/nvidia/initstate r, @{PROC}/cmdline r, } # Site-specific additions and overrides. See local/README for details. include if exists <local/nvidia_modprobe> } PK ! �QkU8 8 usr.sbin.rsyslogdnu �[��� # Last Modified: Sun Sep 25 08:58:35 2011 #include <tunables/global> # Debugging the syslogger can be difficult if it can't write to the file # that the kernel is logging denials to. In these cases, you can do the # following: # watch -n 1 'dmesg | tail -5' profile rsyslogd /usr/sbin/rsyslogd { #include <abstractions/base> #include <abstractions/nameservice> capability sys_tty_config, capability dac_override, capability dac_read_search, capability setuid, capability setgid, capability sys_nice, capability syslog, unix (receive) type=dgram, unix (receive) type=stream, # rsyslog configuration /etc/rsyslog.conf r, /etc/rsyslog.d/ r, /etc/rsyslog.d/** r, /{,var/}run/rsyslogd.pid{,.tmp} rwk, /var/spool/rsyslog/ r, /var/spool/rsyslog/** rwk, /usr/sbin/rsyslogd mr, /usr/lib{,32,64}/{,@{multiarch}/}rsyslog/*.so mr, /dev/tty* rw, /dev/xconsole rw, @{PROC}/kmsg r, /dev/log rwl, /{,var/}run/utmp rk, /var/lib/*/dev/log rwl, /var/spool/postfix/dev/log rwl, /{,var/}run/systemd/notify w, # 'r' is needed when using imfile /var/log/** rw, # Add these for mysql support #/etc/mysql/my.cnf r, #/{,var/}run/mysqld/mysqld.sock rw, # Add thes for postgresql support ##include <abstractions/openssl> ##include <abstractions/ssl_certs> #/{,var/}run/postgresql/.s.PGSQL.*[0-9] rw, # Site-specific additions and overrides. See local/README for details. #include <local/usr.sbin.rsyslogd> } PK ! {�@); ; lsb_releasenu �[��� # Note: This profile does not specify an attachment path because it is # intended to be used only via "Px -> lsb_release" exec transitions from # other profiles. We want to confine the lsb_release(1) utility when it # is invoked from other confined applications, but not when it is used # in regular (unconfined) shell scripts or run directly by the user. abi <abi/3.0>, include <tunables/global> # Do not attach to /usr/bin/lsb_release by default profile lsb_release { include <abstractions/base> include <abstractions/python> owner @{PROC}/@{pid}/fd/ r, /dev/tty rw, /usr/bin/lsb_release r, /usr/bin/python3.{1,}[0-9] mr, /etc/debian_version r, /etc/default/apport r, /etc/dpkg/origins/** r, /etc/lsb-release r, /etc/lsb-release.d/ r, /{usr/,}bin/bash ixr, /{usr/,}bin/dash ixr, /usr/bin/basename ixr, /usr/bin/dpkg-query ixr, /usr/bin/getopt ixr, /usr/bin/sed ixr, /usr/bin/tr ixr, # TODO - many more permissions needed for this to work deny /usr/bin/apt-cache x, /usr/bin/ r, /usr/include/python*/pyconfig.h r, /usr/share/distro-info/** r, /usr/share/dpkg/** r, /usr/share/terminfo/** r, /var/lib/dpkg/** r, # file_inherit deny /tmp/gtalkplugin.log w, # Site-specific additions and overrides. See local/README for details. include if exists <local/lsb_release> } PK ! uUe�x x usr.bin.mannu �[��� # vim:syntax=apparmor #include <tunables/global> /usr/bin/man { #include <abstractions/base> # Use a special profile when man calls anything groff-related. We only # include the programs that actually parse input data in a non-trivial # way, not wrappers such as groff and nroff, since the latter would need a # broader profile. /usr/bin/eqn rmCx -> &man_groff, /usr/bin/grap rmCx -> &man_groff, /usr/bin/pic rmCx -> &man_groff, /usr/bin/preconv rmCx -> &man_groff, /usr/bin/refer rmCx -> &man_groff, /usr/bin/tbl rmCx -> &man_groff, /usr/bin/troff rmCx -> &man_groff, /usr/bin/vgrind rmCx -> &man_groff, # Similarly, use a special profile when man calls decompressors and other # simple filters. /{,usr/}bin/bzip2 rmCx -> &man_filter, /{,usr/}bin/gzip rmCx -> &man_filter, /usr/bin/col rmCx -> &man_filter, /usr/bin/compress rmCx -> &man_filter, /usr/bin/iconv rmCx -> &man_filter, /usr/bin/lzip.lzip rmCx -> &man_filter, /usr/bin/tr rmCx -> &man_filter, /usr/bin/xz rmCx -> &man_filter, # Allow basically anything in terms of file system access, subject to DAC. # The purpose of this profile isn't to confine man itself (that might be # nice in the future, but is tricky since it's quite configurable), but to # confine the processes it calls that parse untrusted data. /** mrixwlk, unix, capability setuid, capability setgid, # Ordinary permission checks sometimes involve checking whether the # process has this capability, which can produce audit log messages. # Silence them. deny capability dac_override, deny capability dac_read_search, signal peer=@{profile_name}, signal peer=/usr/bin/man//&man_groff, signal peer=/usr/bin/man//&man_filter, # Site-specific additions and overrides. See local/README for details. #include <local/usr.bin.man> } profile man_groff { #include <abstractions/base> # Recent kernels revalidate open FDs, and there are often some still # open on TTYs. This is temporary until man learns to close irrelevant # open FDs before execve. #include <abstractions/consoles> # man always runs its groff pipeline with the input file open on stdin, # so we can skip <abstractions/user-manpages>. /usr/bin/eqn rm, /usr/bin/grap rm, /usr/bin/pic rm, /usr/bin/preconv rm, /usr/bin/refer rm, /usr/bin/tbl rm, /usr/bin/troff rm, /usr/bin/vgrind rm, /etc/groff/** r, /etc/papersize r, /usr/lib/groff/site-tmac/** r, /usr/share/groff/** r, /tmp/groff* rw, signal peer=/usr/bin/man, # @{profile_name} doesn't seem to work here. signal peer=/usr/bin/man//&man_groff, } profile man_filter { #include <abstractions/base> # Recent kernels revalidate open FDs, and there are often some still # open on TTYs. This is temporary until man learns to close irrelevant # open FDs before execve. #include <abstractions/consoles> /{,usr/}bin/bzip2 rm, /{,usr/}bin/gzip rm, /usr/bin/col rm, /usr/bin/compress rm, /usr/bin/iconv rm, /usr/bin/lzip.lzip rm, /usr/bin/tr rm, /usr/bin/xz rm, # Manual pages can be more or less anywhere, especially with "man -l", and # there's no harm in allowing wide read access here since the worst it can # do is feed data to the invoking man process. /** r, # Allow writing cat pages. /var/cache/man/** w, signal peer=/usr/bin/man, # @{profile_name} doesn't seem to work here. signal peer=/usr/bin/man//&man_filter, } PK ! f.��� � usr.lib.snapd.snap-confine.realnu �[��� # Author: Jamie Strandboge <jamie@canonical.com> #include <tunables/global> @{SNAP_MOUNT_DIR_LIST}="{,/var/lib/snapd}/snap" /usr/lib/snapd/snap-confine (attach_disconnected) { # Include any additional files that snapd chose to generate. # - for $HOME on remote file system. # - for $HOME on encrypted media # # Those are discussed on https://forum.snapcraft.io/t/snapd-vs-upstream-kernel-vs-apparmor # and https://forum.snapcraft.io/t/snaps-and-nfs-home/ #include "/var/lib/snapd/apparmor/snap-confine" # We run privileged, so be fanatical about what we include and don't use # any abstractions /etc/ld.so.cache r, /etc/ld.so.preload r, # Do not assume that the interpreter is always named like # ld-linux-x86_64.so, as on some architectures there can be a version after # the .so suffix, eg. ld-linux-aarch64.so.1 /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}ld{-*,64}.so* mrix, # libc, you are funny /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,glibc-hwcaps/*/,@{multiarch}/{,atomics/}}libc{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}libpthread{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libreadline{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}librt{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libgcc_s.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libncursesw{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}libresolv{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libselinux.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libpcre{,2}{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libmount.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libblkid.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libuuid.so* mr, # normal libs in order /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libapparmor.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libcgmanager.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}libdl{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libnih.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libnih-dbus.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libdbus-1.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libudev.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libseccomp.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libcap.so* mr, /usr/lib/snapd/snap-confine mr, # This rule is needed when executing from a "base: core" devmode snap on # UC18 and newer where the /usr/lib/snapd/snap-confine inside the # "base: core" mount namespace always comes from the snapd snap, and thus # we will execute snap-confine via this path, and thus need to be able to # read this path when executing. It's also necessary on classic where both # the snapd and the core snap are installed at the same time. # TODO: remove this rule when we stop supporting executing other snaps from # inside devmode snaps, ideally even in the short term we would only include # this rule on core only, and specifically uc18 and newer where we need it #@VERBATIM_LIBEXECDIR_SNAP_CONFINE@ mr, /dev/null rw, /dev/full rw, /dev/zero rw, /dev/random r, /dev/urandom r, /dev/pts/[0-9]* rw, /dev/tty rw, # Stdout may be inherited from systemd. This is normally provided by <abstractions/base> /{,var/}run/systemd/journal/stdout rw, # SNAP_MOUNT_DIR probe logic /proc/1/root/snap r, # cgroup: devices capability sys_admin, capability dac_read_search, capability dac_override, /sys/fs/cgroup/ r, /sys/fs/cgroup/devices/ r, /sys/fs/cgroup/devices/snap.*/ rw, /sys/fs/cgroup/devices/snap.*/cgroup.procs w, /sys/fs/cgroup/devices/snap.*/devices.{allow,deny} w, # cgroup: freezer # Allow creating per-snap cgroup freezers and adding snap command (task) # invocations to the freezer. This allows for reliably enumerating all # running processes for the snap. In addition, allow enumerating processes # in the cgroup to determine if it is occupied. /sys/fs/cgroup/freezer/ r, /sys/fs/cgroup/freezer/snap.*/ w, /sys/fs/cgroup/freezer/snap.*/cgroup.procs rw, /sys/fs/cgroup/ r, /sys/fs/cgroup/** r, # cgroup: reading own cgroup @{PROC}/@{pid}/cgroup r, # cgroup: manage bpf map for device cgroup /sys/fs/bpf/ r, /sys/fs/bpf/snap/ rw, /sys/fs/bpf/snap/* rw, # s-c may need to raise the memlock limit capability sys_resource, # querying udev /etc/udev/udev.conf r, /sys/**/uevent r, /run/udev/** rw, /usr/lib/locale/** r, /usr/lib/@{multiarch}/gconv/gconv-modules r, /usr/lib/@{multiarch}/gconv/gconv-modules.cache r, # priv dropping capability setuid, capability setgid, # changing profile @{PROC}/[0-9]*/attr/{,apparmor/}exec w, # Reading current profile @{PROC}/[0-9]*/attr/{,apparmor/}current r, # Reading available filesystems @{PROC}/filesystems r, # To find where apparmor is mounted @{PROC}/[0-9]*/mounts r, # To find if apparmor is enabled /sys/module/apparmor/parameters/enabled r, # For detecting if we're in a container /run/systemd/container r, # Don't allow changing profile to unconfined or profiles that start with # '/'. Use 'unsafe' to support snap-exec on armhf and its reliance on # the environment for determining the capabilities of the architecture. # 'unsafe' is ok here because the kernel will have already cleared the # environment as part of launching snap-confine with CAP_SYS_ADMIN. This # does leave directories as configured by ld.so.preload as well as # LD_PRELOAD to be set to a library which is in a directory configured by # ld.so.conf, but access to those locations is mediated by this profile # (which requires rules for specific locations). # TODO: use GenerateAAREExclusionPatterns for this, though the first # rule and the fact that the generative aspect is not an absolute filepath # complicate using that function directly change_profile unsafe /** -> [^u/]**, change_profile unsafe /** -> u[^n]**, change_profile unsafe /** -> un[^c]**, change_profile unsafe /** -> unc[^o]**, change_profile unsafe /** -> unco[^n]**, change_profile unsafe /** -> uncon[^f]**, change_profile unsafe /** -> unconf[^i]**, change_profile unsafe /** -> unconfi[^n]**, change_profile unsafe /** -> unconfin[^e]**, change_profile unsafe /** -> unconfine[^d]**, change_profile unsafe /** -> unconfined?**, # allow changing to a few not caught above change_profile unsafe /** -> {u,un,unc,unco,uncon,unconf,unconfi,unconfin,unconfine}, # LP: #1446794 - when this bug is fixed, change the above to: # deny change_profile unsafe /** -> {unconfined,/**}, # change_profile unsafe /** -> **, # reading seccomp filters. # Note 1: We still need to consider .bin extension because of global.bin file. # Note 2: This rule is not needed because of rule '/var/lib/** rw', however we keep it because at # some point we want to investigate if we can narrow the scope of the aforementioned rule. /{tmp/snap.rootfs_*/,}var/lib/snapd/seccomp/bpf/*.bin{,2} r, # adding a missing bpf mount mount fstype=bpf options=(rw) bpf -> /sys/fs/bpf/, # For mounting base dir by dir (write dirs and mount on them) /tmp/snap.rootfs_** rw, mount options=(remount ro) -> /tmp/snap.rootfs_*/, mount options=(rw rbind) @{SNAP_MOUNT_DIR_LIST}/*/*/**/ -> /tmp/snap.rootfs_**/, # For mounting individual files mount options=(rw bind) @{SNAP_MOUNT_DIR_LIST}/*/*/** -> /tmp/snap.rootfs_*/**, mount options=(rw rslave) -> /tmp/snap.rootfs_**/, # Allow mounting dirs from / mount options=(rw rbind) /*/ -> /tmp/snap.rootfs_**/, # LP: #1668659 and parallel instances of classic snaps mount options=(rw rbind) /snap/ -> /snap/, mount options=(rw rshared) -> /snap/, mount options=(rw rbind) /var/lib/snapd/snap/ -> /var/lib/snapd/snap/, mount options=(rw rshared) -> /var/lib/snapd/snap/, # boostrapping the mount namespace /tmp/snap.rootfs_*/ rw, mount fstype=tmpfs none -> /tmp/snap.rootfs_*/, mount options=(rw rshared) -> /, mount options=(rw bind) /tmp/snap.rootfs_*/ -> /tmp/snap.rootfs_*/, mount options=(rw unbindable) -> /tmp/snap.rootfs_*/, # the next line is for classic system mount options=(rw rbind) @{SNAP_MOUNT_DIR_LIST}/*/*/ -> /tmp/snap.rootfs_*/, # the next line is for core system mount options=(rw rbind) / -> /tmp/snap.rootfs_*/, # all of the constructed rootfs is a rslave mount options=(rw rslave) -> /tmp/snap.rootfs_*/, # bidirectional mounts (for both classic and core) # NOTE: this doesn't capture the MERGED_USR configuration option so that # when a distro with merged /usr and / that uses apparmor shows up it # should be handled here. /{,run/}media/ w, mount options=(rw rbind) /{,run/}media/ -> /tmp/snap.rootfs_*/{,run/}media/, /run/netns/ w, mount options=(rw rbind) /run/netns/ -> /tmp/snap.rootfs_*/run/netns/, # unidirectional mounts (only for classic system) mount options=(rw rbind) /dev/ -> /tmp/snap.rootfs_*/dev/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/dev/, mount options=(rw rbind) /etc/ -> /tmp/snap.rootfs_*/etc/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/etc/, mount options=(rw rbind) /home/ -> /tmp/snap.rootfs_*/home/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/home/, mount options=(rw rbind) /root/ -> /tmp/snap.rootfs_*/root/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/root/, mount options=(rw rbind) /proc/ -> /tmp/snap.rootfs_*/proc/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/proc/, mount options=(rw rbind) /sys/ -> /tmp/snap.rootfs_*/sys/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/sys/, mount options=(rw rbind) /tmp/ -> /tmp/snap.rootfs_*/tmp/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/tmp/, mount options=(rw rbind) /var/lib/dhcp/ -> /tmp/snap.rootfs_*/var/lib/dhcp/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/var/lib/dhcp/, mount options=(rw rbind) /var/lib/snapd/ -> /tmp/snap.rootfs_*/var/lib/snapd/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/var/lib/snapd/, mount options=(rw rbind) /var/snap/ -> /tmp/snap.rootfs_*/var/snap/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/var/snap/, mount options=(rw rbind) /var/tmp/ -> /tmp/snap.rootfs_*/var/tmp/, # /var/volatile is the default volatile location on Yocto/Poky, typically used with read-only rootfs setups mount options=(rw rbind) /var/volatile/tmp/ -> /tmp/snap.rootfs_*/var/tmp/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/var/tmp/, mount options=(rw rbind) /run/ -> /tmp/snap.rootfs_*/run/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/run/, mount options=(rw rbind) /var/lib/extrausers/ -> /tmp/snap.rootfs_*/var/lib/extrausers/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/var/lib/extrausers/, mount options=(rw rbind) {,/usr}/lib{,32,64,x32}/modules/ -> /tmp/snap.rootfs_*{,/usr}/lib/modules/, mount options=(rw rslave) -> /tmp/snap.rootfs_*{,/usr}/lib/modules/, mount options=(rw rbind) {,/usr}/lib{,32,64,x32}/firmware/ -> /tmp/snap.rootfs_*{,/usr}/lib/firmware/, mount options=(rw rslave) -> /tmp/snap.rootfs_*{,/usr}/lib/firmware/, mount options=(rw rbind) /var/log/ -> /tmp/snap.rootfs_*/var/log/, # /var/volatile is the default volatile location on Yocto/Poky, typically used with read-only rootfs setups mount options=(rw rbind) /var/volatile/log/ -> /tmp/snap.rootfs_*/var/log/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/var/log/, mount options=(rw rbind) /usr/src/ -> /tmp/snap.rootfs_*/usr/src/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/usr/src/, mount options=(rw rbind) /mnt/ -> /tmp/snap.rootfs_*/mnt/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/mnt/, # allow making host snap-exec available inside base snaps mount options=(rw bind) /usr/lib/snapd/ -> /tmp/snap.rootfs_*/usr/lib/snapd/, mount options=(rw slave) -> /tmp/snap.rootfs_*/usr/lib/snapd/, # allow making re-execed host snap-exec available inside base snaps mount options=(ro bind) @{SNAP_MOUNT_DIR_LIST}/core/*/usr/lib/snapd/ -> /tmp/snap.rootfs_*/usr/lib/snapd/, # allow making snapd snap tools available inside base snaps mount options=(ro bind) @{SNAP_MOUNT_DIR_LIST}/snapd/*/usr/lib/snapd/ -> /tmp/snap.rootfs_*/usr/lib/snapd/, mount options=(rw bind) /usr/bin/snapctl -> /tmp/snap.rootfs_*/usr/bin/snapctl, mount options=(rw slave) -> /tmp/snap.rootfs_*/usr/bin/snapctl, # /etc/alternatives (classic and normal mode) mount options=(rw bind) @{SNAP_MOUNT_DIR_LIST}/*/*/etc/alternatives/ -> /tmp/snap.rootfs_*/etc/alternatives/, mount options=(rw bind) @{SNAP_MOUNT_DIR_LIST}/*/*/etc/ssl/ -> /tmp/snap.rootfs_*/etc/ssl/, mount options=(rw bind) @{SNAP_MOUNT_DIR_LIST}/*/*/etc/nsswitch.conf -> /tmp/snap.rootfs_*/etc/nsswitch.conf, mount options=(rw bind) @{SNAP_MOUNT_DIR_LIST}/*/*/etc/apparmor/ -> /tmp/snap.rootfs_*/etc/apparmor/, mount options=(rw bind) @{SNAP_MOUNT_DIR_LIST}/*/*/etc/apparmor.d/ -> /tmp/snap.rootfs_*/etc/apparmor.d/, # /etc/alternatives (core/legacy mode) mount options=(rw bind) /etc/alternatives/ -> /tmp/snap.rootfs_*/etc/alternatives/, # making all those directories slave shared. mount options=(rw slave) -> /tmp/snap.rootfs_*/etc/alternatives/, mount options=(rw slave) -> /tmp/snap.rootfs_*/etc/ssl/, mount options=(rw slave) -> /tmp/snap.rootfs_*/etc/nsswitch.conf, mount options=(rw slave) -> /tmp/snap.rootfs_*/etc/apparmor/, mount options=(rw slave) -> /tmp/snap.rootfs_*/etc/apparmor.d/, # the /snap directory mount options=(rw rbind) @{SNAP_MOUNT_DIR_LIST}/ -> /tmp/snap.rootfs_*/snap/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/snap/, # pivot_root preparation and execution mount options=(rw bind) /tmp/snap.rootfs_*/var/lib/snapd/hostfs/ -> /tmp/snap.rootfs_*/var/lib/snapd/hostfs/, mount options=(rw private) -> /tmp/snap.rootfs_*/var/lib/snapd/hostfs/, # pivot_root mediation in AppArmor is not complete. See LP: #1791711. # However, we can mediate the new_root and put_old to be what we expect, # and then deny directory creation within old_root to prevent trivial # pivoting into an allowlisted path. pivot_root oldroot=/tmp/snap.rootfs_*/var/lib/snapd/hostfs/ /tmp/snap.rootfs_*/, # Explicitly deny creating the old_root directory in case it is # inadvertently added somewhere else. While this doesn't resolve # LP: #1791711, it provides some hardening. # For dir on dir mounts, we do need write permissions in /var though audit deny /tmp/snap.rootfs_*/{var/lib/,var/lib/snapd/,var/lib/snapd/hostfs/} w, # cleanup umount /var/lib/snapd/hostfs/tmp/snap.rootfs_*/, umount /var/lib/snapd/hostfs/sys/, umount /var/lib/snapd/hostfs/dev/, umount /var/lib/snapd/hostfs/proc/, mount options=(rw rslave) -> /var/lib/snapd/hostfs/, # Hide /writable from view of snaps. mount options=(rprivate) -> /{,var/lib/snapd/hostfs/}writable/, umount /{,var/lib/snapd/hostfs/}writable/, # set up user mount namespace mount options=(rslave) -> /, # set up mount namespace for parallel instances of classic snaps mount options=(rw rbind) @{SNAP_MOUNT_DIR_LIST}/{,*/} -> @{SNAP_MOUNT_DIR_LIST}/{,*/}, mount options=(rslave) -> @{SNAP_MOUNT_DIR_LIST}/, mount options=(rslave) -> /var/snap/, mount options=(rw rbind) /var/snap/{,*/} -> /var/snap/{,*/}, mount options=(rw rshared) -> /var/snap/, # Allow reading the os-release file (possibly a symlink to /usr/lib). /{etc/,usr/lib/}os-release r, # Allow creating /var/lib/snapd/hostfs, if missing /var/lib/snapd/hostfs/ rw, # set up snap-specific private /tmp dir capability chown, /tmp/ rw, /tmp/snap-private-tmp/ rw, /tmp/snap-private-tmp/snap.*/ rw, /tmp/snap-private-tmp/snap.*/tmp/ rw, mount options=(rw private) -> /tmp/, mount options=(rw bind) /tmp/snap-private-tmp/snap.*/tmp/ -> /tmp/, mount fstype=devpts options=(rw) devpts -> /dev/pts/, mount options=(rw bind) /dev/pts/ptmx -> /dev/ptmx, # for bind mounting mount options=(rw bind) /dev/pts/ptmx -> /dev/pts/ptmx, # for bind mounting under LXD # Workaround for LP: #1584456 on older kernels that mistakenly think # /dev/pts/ptmx needs a trailing '/' mount options=(rw bind) /dev/pts/ptmx/ -> /dev/ptmx/, mount options=(rw bind) /dev/pts/ptmx/ -> /dev/pts/ptmx/, # for running snaps on classic /snap/ r, /snap/** r, @{SNAP_MOUNT_DIR_LIST}/ r, @{SNAP_MOUNT_DIR_LIST}/** r, # NOTE: at this stage the /snap directory is stable as we have called # pivot_root already. # nvidia handling, glob needs /usr/** and the launcher must be # able to bind mount the nvidia dir /sys/module/nvidia/version r, /sys/**/drivers/nvidia{,_*}/* r, /sys/**/nvidia*/uevent r, /sys/module/nvidia{,_*}/* r, /dev/nvidia[0-9]* r, /dev/nvidiactl r, /dev/nvidia-uvm r, /usr/** r, mount options=(rw bind) /usr/lib{,32}/nvidia-*/ -> /{tmp/snap.rootfs_*/,}var/lib/snapd/lib/gl{,32}/, mount options=(rw bind) /usr/lib{,32}/nvidia-*/ -> /{tmp/snap.rootfs_*/,}var/lib/snapd/lib/gl{,32}/, /tmp/snap.rootfs_*/var/lib/snapd/lib/gl{,32}/{,*} w, mount fstype=tmpfs options=(rw nodev noexec) none -> /tmp/snap.rootfs_*/var/lib/snapd/lib/gl{,32}/, mount options=(remount ro bind) -> /tmp/snap.rootfs_*/var/lib/snapd/lib/gl{,32}/, # Vulkan support /tmp/snap.rootfs_*/var/lib/snapd/lib/vulkan/{,*} w, mount fstype=tmpfs options=(rw nodev noexec) none -> /tmp/snap.rootfs_*/var/lib/snapd/lib/vulkan/, mount options=(remount ro bind) -> /tmp/snap.rootfs_*/var/lib/snapd/lib/vulkan/, # GLVND EGL vendor /tmp/snap.rootfs_*/var/lib/snapd/lib/glvnd/{,*} w, mount fstype=tmpfs options=(rw nodev noexec) none -> /tmp/snap.rootfs_*/var/lib/snapd/lib/glvnd/, mount options=(remount ro bind) -> /tmp/snap.rootfs_*/var/lib/snapd/lib/glvnd/, # create gl dirs as needed /tmp/snap.rootfs_*/ r, /tmp/snap.rootfs_*/var/ r, /tmp/snap.rootfs_*/var/lib/ r, /tmp/snap.rootfs_*/var/lib/snapd/ r, /tmp/snap.rootfs_*/var/lib/snapd/lib/ r, /tmp/snap.rootfs_*/var/lib/snapd/lib/gl{,32}/ r, /tmp/snap.rootfs_*/var/lib/snapd/lib/gl{,32}/** rw, /tmp/snap.rootfs_*/var/lib/snapd/lib/vulkan/ r, /tmp/snap.rootfs_*/var/lib/snapd/lib/vulkan/** rw, /tmp/snap.rootfs_*/var/lib/snapd/lib/glvnd/ r, /tmp/snap.rootfs_*/var/lib/snapd/lib/glvnd/** rw, ## nvidia libraries exported by a snap # read source paths /var/lib/snapd/export/{,*} r, # for the tmpfs /var/lib/snapd/lib/system/ w, /var/lib/snapd/lib/system/gpu/ w, mount fstype=tmpfs options=(rw nodev noexec) none -> /tmp/snap.rootfs_*/var/lib/snapd/lib/system/gpu/, mount options=(remount ro bind) -> /tmp/snap.rootfs_*/var/lib/snapd/lib/system/gpu/, # mounts for the source paths /tmp/snap.rootfs_*/var/lib/snapd/lib/system/gpu/{,**} w, mount options=(ro bind) /{,var/lib/snapd/}snap/** -> /tmp/snap.rootfs_*/var/lib/snapd/lib/system/gpu/**, # for chroot on steroids, we use pivot_root as a better chroot that makes # apparmor rules behave the same on classic and outside of classic. # for creating the user data directories: ~/snap, ~/snap/<name> and # ~/snap/<name>/<version> / r, @{HOMEDIRS}/ r, # These should both have 'owner' match but due to LP: #1466234, we can't # yet @{HOME}/ r, @{HOME}/snap/{,*/,*/*/} rw, # experimental @{HOME}/.snap/ rw, @{HOME}/.snap/data/{,*/,*/*/} rw, @{HOME}/Snap/{,*/,*/*/} rw, # Special case for *classic* snaps that are used by users with existing dirs # in /var/lib/. Like jenkins, postgresql, mysql, puppet, ... # (see https://forum.snapcraft.io/t/9717) # TODO: this can be removed once we support home-dirs outside of /home # better /var/ r, /var/lib/ r, # These should both have 'owner' match but due to LP: #1466234, we can't # yet /var/lib/*/ r, /var/lib/*/snap/{,*/,*/*/} rw, # for creating the user shared memory directories /{dev,run}/{,shm/} r, # This should both have 'owner' match but due to LP: #1466234, we can't yet /{dev,run}/shm/{,*/,*/*/} rw, # for creating the user XDG_RUNTIME_DIR: /run/user, /run/user/UID and # /run/user/UID/<name> /run/user/{,[0-9]*/,[0-9]*/*/} rw, # Workaround https://launchpad.net/bugs/359338 until upstream handles # stacked filesystems generally. # encrypted ~/.Private and old-style encrypted $HOME @{HOME}/.Private/ r, @{HOME}/.Private/** mrwlk, # new-style encrypted $HOME @{HOMEDIRS}/.ecryptfs/*/.Private/ r, @{HOMEDIRS}/.ecryptfs/*/.Private/** mrwlk, # Allow snap-confine to move to the void, creating it if necessary. /var/lib/snapd/void/ rw, # Allow snap-confine to read snap contexts /var/lib/snapd/context/snap.* r, # Allow snap-confine to unmount stale mount namespaces. umount /run/snapd/ns/*.mnt, /run/snapd/ns/snap.*.fstab w, # Allow snap-confine to read and write mount namespace information files. /run/snapd/ns/snap.*.info rw, # Required to correctly unmount bound mount namespace. # See LP: #1735459 for details. umount /, # support for locking /run/snapd/lock/ rw, /run/snapd/lock/*.lock rwk, # support for the mount namespace sharing capability fowner, capability sys_ptrace, # allow snap-confine to read /proc/1/ns/mnt ptrace read peer=unconfined, # https://forum.snapcraft.io/t/custom-kernel-error-on-readlinkat-in-mount-namespace/6097/21 ptrace trace peer=unconfined, mount options=(rw rbind) /run/snapd/ns/ -> /run/snapd/ns/, mount options=(private) -> /run/snapd/ns/, / rw, /run/ rw, /run/snapd/ rw, /run/snapd/ns/ rw, /run/snapd/ns/*.lock rwk, /run/snapd/ns/*.mnt rw, ptrace (read, readby, tracedby) peer=/usr/lib/snapd/snap-confine//mount-namespace-capture-helper, @{PROC}/*/mountinfo r, capability sys_chroot, capability sys_admin, signal (send, receive) set=(abrt) peer=/usr/lib/snapd/snap-confine, signal (send) set=(int) peer=/usr/lib/snapd/snap-confine//mount-namespace-capture-helper, signal (send, receive) set=(int, alrm, exists) peer=/usr/lib/snapd/snap-confine, signal (receive) set=(exists) peer=/usr/lib/snapd/snap-confine//mount-namespace-capture-helper, # workaround for linux 4.13/upstream, see # https://forum.snapcraft.io/t/snapd-2-27-6-2-in-debian-sid-blocked-on-apparmor-in-kernel-4-13-0-1/2813/3 ptrace (trace, tracedby) peer=/usr/lib/snapd/snap-confine, # Allow reading snap cookies. /var/lib/snapd/cookie/snap.* r, # For aa_change_hat() to go into ^mount-namespace-capture-helper @{PROC}/[0-9]*/attr/{,apparmor/}current w, # As a special exception allow snap-confine to write to anything in /var/lib. # This code should be changed to allow delegation so that snap-confine can # inherit any file descriptor and pass it to the invoked application but # this is not possible in apparmor yet. # See https://bugs.launchpad.net/snapd/+bug/1815869 /var/lib/** rw, ^mount-namespace-capture-helper (attach_disconnected) { # We run privileged, so be fanatical about what we include and don't use # any abstractions /etc/ld.so.cache r, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}ld{-*,64}.so* mrix, # libc, you are funny /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,glibc-hwcaps/*/,@{multiarch}/{,atomics/}}libc{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}libpthread{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libreadline{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}librt{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libgcc_s.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libncursesw{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}libresolv{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libselinux.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libpcre.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libmount.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libblkid.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libuuid.so* mr, # normal libs in order /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libapparmor.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libcgmanager.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}libdl{,-[0-9]*}.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libnih.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libnih-dbus.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libdbus-1.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libudev.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libseccomp.so* mr, /{,{,var/lib/snapd/}snap/{snapd,core}/*/}{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libcap.so* mr, /usr/lib/snapd/snap-confine mr, /dev/null rw, /dev/full rw, /dev/zero rw, /dev/random r, /dev/urandom r, # Stdout may be inherited from systemd. This is normally provided by <abstractions/base> /{,var/}run/systemd/journal/stdout rw, capability dac_override, capability sys_ptrace, capability sys_admin, # This allows us to read and bind mount the namespace file / r, @{PROC}/ r, @{PROC}/*/ r, @{PROC}/*/ns/ r, @{PROC}/*/ns/mnt r, /run/ r, /run/snapd/ r, /run/snapd/ns/ r, /run/snapd/ns/*.mnt rw, # NOTE: the source name is / even though we map /proc/123/ns/mnt mount options=(rw bind) / -> /run/snapd/ns/*.mnt, # This is the SIGALRM that we send and receive if a timeout expires signal (send, receive) set=(alrm) peer=/usr/lib/snapd/snap-confine//mount-namespace-capture-helper, # Those two rules are exactly the same but we don't know if the parent process is still alive # and hence has the appropriate label or is already dead and hence has no label. signal (send) set=(exists) peer=/usr/lib/snapd/snap-confine, signal (send) set=(exists) peer=unconfined, # This is so that we can abort signal (send, receive) set=(abrt) peer=/usr/lib/snapd/snap-confine//mount-namespace-capture-helper, # This is the signal we get if snap-confine dies (we subscribe to it with prctl) signal (receive) set=(int) peer=/usr/lib/snapd/snap-confine, # This allows snap-confine to be killed from the outside. signal (receive) peer=unconfined, # This allows snap-confine to wait for us ptrace (read, trace, tracedby) peer=/usr/lib/snapd/snap-confine, } # Allow snap-confine to be killed signal (receive) peer=unconfined, # Allow switching to snap-update-ns with a per-snap profile. change_profile -> snap-update-ns.*, # Allow executing snap-update-ns when... # ...snap-confine is, conceptually, re-executing and uses snap-update-ns # from the distribution package. This is also the location used when using # the core/base snap on all-snap systems. The variants here represent # various locations of libexecdir across distributions. /usr/lib{,exec,64}/snapd/snap-update-ns r, # ...snap-confine is not, conceptually, re-executing and uses # snap-update-ns from the distribution package but we are already inside # the constructed mount namespace so we must traverse "hostfs". The # variants here represent various locations of libexecdir across # distributions. /var/lib/snapd/hostfs/usr/lib{,exec,64}/snapd/snap-update-ns r, # ..snap-confine is, conceptually, re-executing and uses snap-update-ns # from the core or snapd snaps. Note that the location of the actual snap # varies from distribution to distribution. The variants here represent # different locations of snap mount directory across distributions. /{,var/lib/snapd/}snap/{core,snapd}/*/usr/lib/snapd/snap-update-ns r, # ...snap-confine is, conceptually, re-executing and uses snap-update-ns # from the core snap or snapd snap, but we are already inside the # constructed mount namespace. Here the apparmor kernel module # re-constructs the path to snap-update-ns using the "hostfs" mount entry # rather than the more "natural" /snap mount entry but we have no control # over that. This is reported as (LP: #1716339). The variants here # represent different locations of snap mount directory across # distributions. /var/lib/snapd/hostfs/{,var/lib/snapd/}snap/{core,snapd}/*/usr/lib/snapd/snap-update-ns r, # Allow executing snap-discard-ns, just like the set for snap-update-ns # above but with the key difference that snap-discard-ns does not # have a dedicated profile so we need to inherit snap-confine's profile. /usr/lib{,exec,64}/snapd/snap-discard-ns rix, /var/lib/snapd/hostfs/usr/lib{,exec,64}/snapd/snap-discard-ns rix, /{,var/lib/snapd/}snap/{core,snapd}/*/usr/lib/snapd/snap-discard-ns rix, /var/lib/snapd/hostfs/{,var/lib/snapd/}snap/{core,snapd}/*/usr/lib/snapd/snap-discard-ns rix, # Allow mounting /var/lib/jenkins from the host into the snap. mount options=(rw rbind) /var/lib/jenkins/ -> /tmp/snap.rootfs_*/var/lib/jenkins/, mount options=(rw rslave) -> /tmp/snap.rootfs_*/var/lib/jenkins/, # Suppress noisy file_inherit denials (LP: #1850552) until LP: #1849753 is # fixed. deny /dev/shm/.org.chromium.Chromium.* rw, # While snap-confine itself doesn't require unix rules and therefore all # unix rules are implicitly denied, adding an explicit deny for unix to # silence noisy denials breaks nested lxd. Until the cause is determined, # do not use an explicit deny for unix. (LP: #1855355) #deny unix, # Explicitly deny these accesses which show up on Arch to silence the # denials for this unneeded access. deny /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libnss_files-[0-9]*.so* mr, deny /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libnss_mymachines.[0-9]*.so* mr, deny /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libnss_systemd.[0-9]*.so* mr, deny /etc/nsswitch.conf r, deny /etc/passwd r, } PK ! b��Å � abi/3.0nu �[��� query {label {multi_transaction {yes } data {yes } perms {allow deny audit quiet } } } dbus {mask {acquire send receive } } signal {mask {hup int quit ill trap abrt bus fpe kill usr1 segv usr2 pipe alrm term stkflt chld cont stop stp ttin ttou urg xcpu xfsz vtalrm prof winch io pwr sys emt lost } } ptrace {mask {read trace } } caps {mask {chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon bpf } } rlimit {mask {cpu fsize data stack core rss nproc nofile memlock as locks sigpending msgqueue nice rtprio rttime } } capability {0xffffff } namespaces {pivot_root {no } profile {yes } } mount {mask {mount umount pivot_root } } network {af_unix {yes } af_mask {unspec unix inet ax25 ipx appletalk netrom bridge atmpvc x25 inet6 rose netbeui security key netlink packet ash econet atmsvc rds sna irda pppox wanpipe llc ib mpls can tipc bluetooth iucv rxrpc isdn phonet ieee802154 caif alg nfc vsock kcm qipcrtr smc xdp } } network_v8 {af_mask {unspec unix inet ax25 ipx appletalk netrom bridge atmpvc x25 inet6 rose netbeui security key netlink packet ash econet atmsvc rds sna irda pppox wanpipe llc ib mpls can tipc bluetooth iucv rxrpc isdn phonet ieee802154 caif alg nfc vsock kcm qipcrtr smc xdp } } file {mask {create read write exec append mmap_exec link lock } } domain {version {1.2 } attach_conditions {xattr {yes } } computed_longest_left {yes } post_nnp_subset {yes } fix_binfmt_elf_mmap {yes } stack {yes } change_profile {yes } change_onexec {yes } change_hatv {yes } change_hat {yes } } policy {set_load {yes } versions {v8 {yes } v7 {yes } v6 {yes } v5 {yes } } } PK ! J�} abi/kernel-5.4-vanillanu �[��� query {label {multi_transaction {yes } data {yes } perms {allow deny audit quiet } } } signal {mask {hup int quit ill trap abrt bus fpe kill usr1 segv usr2 pipe alrm term stkflt chld cont stop stp ttin ttou urg xcpu xfsz vtalrm prof winch io pwr sys emt lost } } ptrace {mask {read trace } } caps {mask {chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap mac_override mac_admin syslog wake_alarm block_suspend audit_read } } rlimit {mask {cpu fsize data stack core rss nproc nofile memlock as locks sigpending msgqueue nice rtprio rttime } } capability {0xffffff } namespaces {pivot_root {no } profile {yes } } mount {mask {mount umount pivot_root } } } file {mask {create read write exec append mmap_exec link lock } } domain {version {1.2 } attach_conditions {xattr {yes } } computed_longest_left {yes } post_nnp_subset {yes } fix_binfmt_elf_mmap {yes } stack {yes } change_profile {yes } change_onexec {yes } change_hatv {yes } change_hat {yes } } policy {set_load {yes } versions {v8 {yes } v7 {yes } v6 {yes } v5 {yes } } } PK ! �T�'a a abi/kernel-5.4-outoftree-networknu �[��� query {label {multi_transaction {yes } data {yes } perms {allow deny audit quiet } } } dbus {mask {acquire send receive } } signal {mask {hup int quit ill trap abrt bus fpe kill usr1 segv usr2 pipe alrm term stkflt chld cont stop stp ttin ttou urg xcpu xfsz vtalrm prof winch io pwr sys emt lost } } ptrace {mask {read trace } } caps {mask {chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap mac_override mac_admin syslog wake_alarm block_suspend audit_read } } rlimit {mask {cpu fsize data stack core rss nproc nofile memlock as locks sigpending msgqueue nice rtprio rttime } } capability {0xffffff } namespaces {pivot_root {no } profile {yes } } mount {mask {mount umount pivot_root } } network {af_unix {yes } af_mask {unspec unix inet ax25 ipx appletalk netrom bridge atmpvc x25 inet6 rose netbeui security key netlink packet ash econet atmsvc rds sna irda pppox wanpipe llc ib mpls can tipc bluetooth iucv rxrpc isdn phonet ieee802154 caif alg nfc vsock kcm qipcrtr smc xdp } } } file {mask {create read write exec append mmap_exec link lock } } domain {version {1.2 } attach_conditions {xattr {yes } } computed_longest_left {yes } post_nnp_subset {yes } fix_binfmt_elf_mmap {yes } stack {yes } change_profile {yes } change_onexec {yes } change_hatv {yes } change_hat {yes } } policy {set_load {yes } versions {v8 {yes } v7 {yes } v6 {yes } v5 {yes } } } PK ! �1{�� � usr.bin.tcpdumpnu �[��� # vim:syntax=apparmor #include <tunables/global> profile tcpdump /usr/bin/tcpdump { #include <abstractions/base> #include <abstractions/nameservice> #include <abstractions/user-tmp> capability net_raw, capability setuid, capability setgid, capability dac_override, capability chown, network raw, network packet, # for -D @{PROC}/bus/usb/ r, @{PROC}/bus/usb/** r, # for finding an interface /dev/ r, @{PROC}/[0-9]*/net/dev r, /sys/bus/usb/devices/ r, /sys/class/net/ r, /sys/devices/**/net/** r, # for -j capability net_admin, # for tracing USB bus, which libpcap supports /dev/usbmon* r, /dev/bus/usb/ r, /dev/bus/usb/** r, # for init_etherarray(), with -e /etc/ethers r, # for USB probing (see libpcap-1.1.x/pcap-usb-linux.c:probe_devices()) /dev/bus/usb/**/[0-9]* w, # for -z /{usr/,}bin/gzip ixr, /{usr/,}bin/bzip2 ixr, # for -F and -w audit deny @{HOME}/.* mrwkl, audit deny @{HOME}/.*/ rw, audit deny @{HOME}/.*/** mrwkl, audit deny @{HOME}/bin/ rw, audit deny @{HOME}/bin/** mrwkl, owner @{HOME}/ r, owner @{HOME}/** rw, # for -r, -F and -w /**.[pP][cC][aA][pP] rw, /**.[pP][cC][aA][pP][nN][gG] rw, /**.[cC][aA][pP] rw, # -W adds a numerical suffix /**.[pP][cC][aA][pP][0-9]* rw, /**.[pP][cC][aA][pP][nN][gG][0-9]* rw, /**.[cC][aA][pP][0-9]* rw, # for convenience with -r (ie, read pcap files from other sources) /var/log/snort/*log* r, /usr/bin/tcpdump mr, # allow printing to stdout/stderr when inside a container # (LP: #1667016) /dev/pts/* rw, # Site-specific additions and overrides. See local/README for details. #include <local/usr.bin.tcpdump> } PK ! B�� � � usr.sbin.havegednu �[��� # Last Modified: Fri Aug 21 15:23:17 2015 #include <tunables/global> /usr/sbin/haveged { #include <abstractions/base> #include <abstractions/consoles> # Required for ioctl RNDADDENTROPY capability sys_admin, network unix stream, owner @{PROC}/@{pid}/status r, @{PROC}/sys/kernel/osrelease r, @{PROC}/sys/kernel/random/poolsize r, @{PROC}/sys/kernel/random/write_wakeup_threshold w, /dev/random w, /sys/devices/system/cpu/ r, /sys/devices/system/cpu/cpu*/cache/ r, /sys/devices/system/cpu/cpu*/cache/index*/{type,size,level} r, /usr/sbin/haveged mr, /run/haveged.pid w, #include <local/usr.sbin.haveged> } PK ! �� ubuntu_pro_apt_newsnu �[��� abi <abi/3.0>, include <tunables/global> # attach_disconnected is needed here because this service runs with systemd's # PrivateTmp=true profile ubuntu_pro_apt_news flags=(attach_disconnected) { include <abstractions/base> include <abstractions/nameservice> include <abstractions/openssl> include <abstractions/python> # Needed because apt-news calls apt_pkg.init() which tries to # switch to the _apt system user/group. capability setgid, capability setuid, capability dac_read_search, # GH: 3079 capability dac_override, capability kill, capability chown, capability fowner, /etc/apt/** r, /etc/default/apport r, /etc/ubuntu-advantage/* r, # GH: #3109 # Allow reading the os-release file (possibly a symlink to /usr/lib). /{etc/,usr/lib/,lib/}os-release r, /{,usr/}bin/python3.{1,}[0-9] mrix, # "import uuid" in focal triggers an uname call # And also see LP: #2067319 # We are not using the variable @{coreutil_dirs} because it's only # available in questing and this package is usually backported to # older releases. (LP: #2123870) /{bin/,usr/bin/,usr/bin/gnu,usr/lib/cargo/bin/coreutils/}uname mrix, /{,usr/}lib/apt/methods/http mrix, /{,usr/}lib/apt/methods/https mrix, /{,usr/}lib/ubuntu-advantage/apt_news.py r, /usr/share/dpkg/* r, /var/log/ubuntu-advantage.log rw, /var/lib/ubuntu-advantage/** r, /var/lib/ubuntu-advantage/messages/ rw, /var/lib/ubuntu-advantage/messages/* rw, /run/ubuntu-advantage/ rw, /run/ubuntu-advantage/apt-news/ rw, /run/ubuntu-advantage/apt-news/* rw, # LP: #2072489 # the apt-news package selector needs access to packaging information # this is a good candidate for a child profile owner /tmp/** rw, /etc/machine-id r, /etc/dpkg/** r, /{,usr/}bin/dpkg mrix, /var/lib/apt/** r, /var/lib/dpkg/** r, /var/cache/apt/** rw, owner @{PROC}/@{pid}/fd/ r, @{PROC}/@{pid}/status r, @{PROC}/@{pid}/cgroup r, # Site-specific additions and overrides. See local/README for details. #include <local/ubuntu_pro_apt_news> }PK ! 5 �<� � sbin.dhclientnu �[��� # vim:syntax=apparmor #include <tunables/global> /{,usr/}sbin/dhclient flags=(attach_disconnected) { #include <abstractions/base> #include <abstractions/nameservice> #include <abstractions/openssl> capability net_bind_service, capability net_raw, capability dac_override, capability net_admin, network packet, network raw, @{PROC}/[0-9]*/net/ r, @{PROC}/[0-9]*/net/** r, # dhclient wants to update its threads with functional names # https://gitlab.com/apparmor/apparmor/-/merge_requests/730 # see LP: #1918410 owner @{PROC}/@{pid}/task/[0-9]*/comm rw, # LP: #1926139 @{PROC}/cmdline r, /{,usr/}sbin/dhclient mr, # LP: #1197484 and LP: #1202203 - why is this needed? :( /{,usr/}bin/bash mr, /etc/dhclient.conf r, /etc/dhcp/ r, /etc/dhcp/** r, /var/lib/dhcp{,3}/dhclient* lrw, /{,var/}run/dhclient*.pid lrw, /{,var/}run/dhclient*.lease* lrw, # NetworkManager /{,var/}run/nm*conf r, /{,var/}run/sendsigs.omit.d/network-manager.dhclient*.pid lrw, /{,var/}run/NetworkManager/dhclient*.pid lrw, /var/lib/NetworkManager/dhclient*.conf lrw, /var/lib/NetworkManager/dhclient*.lease* lrw, signal (receive) peer=/usr/sbin/NetworkManager, ptrace (readby) peer=/usr/sbin/NetworkManager, # connman /{,var/}run/connman/dhclient*.pid lrw, /{,var/}run/connman/dhclient*.leases lrw, # synce-hal /usr/share/synce-hal/dhclient.conf r, # if there is a custom script, let it run unconfined /etc/dhcp/dhclient-script Uxr, # The dhclient-script shell script sources other shell scripts rather than # executing them, so we can't just use a separate profile for dhclient-script # with 'Uxr' on the hook scripts. However, for the long-running dhclient3 # daemon to run arbitrary code via /sbin/dhclient-script, it would need to be # able to subvert dhclient-script or write to the hooks.d directories. As # such, if the dhclient3 daemon is subverted, this effectively limits it to # only being able to run the hooks scripts. /{,usr/}sbin/dhclient-script Uxr, # Run the ELF executables under their own unrestricted profiles /usr/lib/NetworkManager/nm-dhcp-client.action Pxrm, /usr/lib/connman/scripts/dhclient-script Pxrm, # Support the new executable helper from NetworkManager. /usr/lib/NetworkManager/nm-dhcp-helper Pxrm, signal (receive) peer=/usr/lib/NetworkManager/nm-dhcp-helper, # Site-specific additions and overrides. See local/README for details. #include <local/sbin.dhclient> } /usr/lib/NetworkManager/nm-dhcp-client.action { #include <abstractions/base> #include <abstractions/dbus> /usr/lib/NetworkManager/nm-dhcp-client.action mr, /var/lib/NetworkManager/*lease r, signal (receive) peer=/usr/sbin/NetworkManager, ptrace (readby) peer=/usr/sbin/NetworkManager, network inet dgram, network inet6 dgram, } /usr/lib/NetworkManager/nm-dhcp-helper { #include <abstractions/base> #include <abstractions/dbus> /usr/lib/NetworkManager/nm-dhcp-helper mr, /run/NetworkManager/private-dhcp rw, signal (send) peer=/sbin/dhclient, /var/lib/NetworkManager/*lease r, signal (receive) peer=/usr/sbin/NetworkManager, ptrace (readby) peer=/usr/sbin/NetworkManager, network inet dgram, network inet6 dgram, } /usr/lib/connman/scripts/dhclient-script { #include <abstractions/base> #include <abstractions/dbus> /usr/lib/connman/scripts/dhclient-script mr, network inet dgram, network inet6 dgram, } PK ! @� � � usr.sbin.mysqldnu �[��� # vim:syntax=apparmor # Last Modified: Tue Feb 09 15:28:30 2016 #include <tunables/global> /usr/sbin/mysqld { #include <abstractions/base> #include <abstractions/nameservice> #include <abstractions/user-tmp> #include <abstractions/mysql> #include <abstractions/winbind> # Allow system resource access /proc/*/status r, /sys/devices/system/cpu/ r, /sys/devices/system/node/ r, /sys/devices/system/node/** r, capability sys_resource, capability dac_override, capability dac_read_search, capability setuid, capability setgid, # Allow network access network tcp, /etc/hosts.allow r, /etc/hosts.deny r, # Allow config access /etc/mysql/** r, # Allow pid, socket, socket lock file access /var/run/mysqld/mysqld.pid rw, /var/run/mysqld/mysqld.sock rw, /var/run/mysqld/mysqld.sock.lock rw, /var/run/mysqld/mysqlx.sock rw, /var/run/mysqld/mysqlx.sock.lock rw, /run/mysqld/mysqld.pid rw, /run/mysqld/mysqld.sock rw, /run/mysqld/mysqld.sock.lock rw, /run/mysqld/mysqlx.sock rw, /run/mysqld/mysqlx.sock.lock rw, # Allow systemd notify messages /{,var/}run/systemd/notify w, # Allow execution of server binary /usr/sbin/mysqld mr, /usr/sbin/mysqld-debug mr, # Allow plugin access /usr/lib/mysql/plugin/ r, /usr/lib/mysql/plugin/*.so* mr, # Allow error msg and charset access /usr/share/mysql/ r, /usr/share/mysql/** r, # Allow data dir access /var/lib/mysql/ r, /var/lib/mysql/** rwk, # Allow data files dir access /var/lib/mysql-files/ r, /var/lib/mysql-files/** rwk, # Allow keyring dir access /var/lib/mysql-keyring/ r, /var/lib/mysql-keyring/** rwk, # Allow log file access /var/log/mysql.err rw, /var/log/mysql.log rw, /var/log/mysql/ r, /var/log/mysql/** rw, # Allow read access to mecab files /var/lib/mecab/dic/ipadic-utf8/** r, # Allow read access to OpenSSL config /etc/ssl/openssl.cnf r, # Site-specific additions and overrides. See local/README for details. #include <local/usr.sbin.mysqld> } PK ! ]��A� � ubuntu_pro_esm_cachenu �[��� abi <abi/3.0>, include <tunables/global> # attach_disconnected is needed in all profiles defined here because this # service runs with systemd's PrivateTmp=true profile ubuntu_pro_esm_cache flags=(attach_disconnected) { include <abstractions/base> include <abstractions/nameservice> include <abstractions/openssl> include <abstractions/python> include <abstractions/user-tmp> capability chown, capability dac_override, capability dac_read_search, capability fowner, capability kill, capability setgid, capability setuid, signal send set=int peer=ubuntu_pro_esm_cache//apt_methods, signal send set=int peer=ubuntu_pro_esm_cache//apt_methods_gpgv, /etc/apt/** r, /etc/machine-id r, /etc/ubuntu-advantage/uaclient.conf r, # GH: #3109 # Allow reading the os-release file (possibly a symlink to /usr/lib). /{etc/,usr/lib/,lib/}os-release r, /run/ubuntu-advantage/ rw, /run/ubuntu-advantage/** rw, /run/systemd/container/ r, /run/systemd/container/** r, /{,usr/}bin/apt mrix, /{,usr/}bin/apt-cache mrix, /{,usr/}bin/ischroot mrix, /{,usr/}bin/python3.{1,}[0-9] mrix, # LP: #2067319, #2123870 /{bin/,usr/bin/,usr/bin/gnu,usr/lib/cargo/bin/coreutils/}uname mrix, /{,usr/}bin/cloud-id Cx -> cloud_id, # LP: #2067319 /{,usr/}bin/ps Cx -> ps, /{,usr/}bin/systemd-detect-virt Px -> ubuntu_pro_esm_cache_systemd_detect_virt, /{,usr/}bin/dpkg Cx -> dpkg, /{,usr/}bin/ubuntu-distro-info Cx -> ubuntu_distro_info, /{,usr/}lib/apt/methods/gpgv Cx -> apt_methods_gpgv, /{,usr/}lib/apt/methods/http Cx -> apt_methods, /{,usr/}lib/apt/methods/https Cx -> apt_methods, /{,usr/}lib/apt/methods/store Cx -> apt_methods, # when there is no status.json cached, esm-cache.service will invoke "snap status" /{,usr/}bin/snap PUx, /usr/share/dpkg/** r, /usr/share/keyrings/* r, /var/cache/apt/** rw, /var/lib/apt/** r, /var/lib/dpkg/** r, /var/lib/ubuntu-advantage/** rwk, /var/log/ubuntu-advantage.log rw, @{PROC}/@{pid}/fd/ r, @{PROC}/1/cgroup r, @{PROC}/version_signature r, @{PROC}/@{pid}/mountinfo r, @{PROC}/@{pid}/status r, @{PROC}/@{pid}/stat r, @{PROC}/sys/kernel/osrelease r, profile ps flags=(attach_disconnected) { include <abstractions/base> include <abstractions/nameservice> capability sys_ptrace, # GH: #3079 capability dac_read_search, capability dac_override, # GH: #3119 ptrace (read,trace), # LP: #2067319 /{,usr/}bin/ps mrix, /dev/tty r, @{PROC}/ r, @{PROC}/@{pid}/** r, @{PROC}/uptime r, @{PROC}/sys/kernel/** r, # GH: #3079 @{PROC}/tty/drivers r, /sys/devices/system/node/ r, /sys/devices/system/node/** r, } profile cloud_id flags=(attach_disconnected) { include <abstractions/base> include <abstractions/nameservice> include <abstractions/openssl> include <abstractions/python> ptrace read peer=unconfined, /etc/cloud/** r, /etc/apt/** r, /etc/apport/** r, @{PROC}/@{pid}/fd/ r, @{PROC}/cmdline r, @{PROC}/1/environ r, @{PROC}/1/cmdline r, @{PROC}/@{pid}/status r, /run/cloud-init/** r, /{,usr/}bin/ r, /{,usr/}bin/cloud-id r, /{,usr/}bin/python3.{1,}[0-9] mrix, # LP: #2067319, #2123870 /{bin/,usr/bin/,usr/bin/gnu,usr/lib/cargo/bin/coreutils/}uname mrix, /usr/share/dpkg/** r, # workarounds for # https://gitlab.com/apparmor/apparmor/-/issues/346 # LP: #2067319 /{,usr/}bin/systemctl Px -> ubuntu_pro_esm_cache_systemctl, /{,usr/}bin/systemd-detect-virt Px -> ubuntu_pro_esm_cache_systemd_detect_virt, /var/lib/cloud/** r, } profile dpkg flags=(attach_disconnected) { include <abstractions/base> capability setgid, /etc/dpkg/** r, /{,usr/}bin/dpkg mr, # LP: #2067810 /var/lib/dpkg/** r, } profile ubuntu_distro_info flags=(attach_disconnected) { include <abstractions/base> /{,usr/}bin/ubuntu-distro-info mr, /usr/share/distro-info/** r, } profile apt_methods flags=(attach_disconnected) { include <abstractions/base> include <abstractions/nameservice> include <abstractions/ssl_certs> include <abstractions/user-tmp> capability setgid, capability setuid, network inet stream, network inet6 stream, signal receive set=int peer=ubuntu_pro_esm_cache, / r, /etc/dpkg/** r, /{,usr/}lib/apt/methods/gpgv mr, /{,usr/}lib/apt/methods/http mr, /{,usr/}lib/apt/methods/https mr, /{,usr/}lib/apt/methods/store mr, /usr/share/dpkg/** r, # LP: #2067810 /var/lib/dpkg/** r, /var/lib/ubuntu-advantage/apt-esm/** rwk, @{PROC}/@{pid}/cgroup r, @{PROC}/@{pid}/fd/ r, } profile apt_methods_gpgv flags=(attach_disconnected) { include <abstractions/base> include <abstractions/nameservice> include <abstractions/ssl_certs> include <abstractions/user-tmp> capability setgid, capability setuid, signal receive set=int peer=ubuntu_pro_esm_cache, / r, /etc/dpkg/** r, # there are just too many shell script tools that are called, like head, # tail, cut, sed, etc # LP: #2123870 /{bin/,usr/bin/,usr/bin/gnu,usr/lib/cargo/bin/coreutils/}* mrix, /{,usr/}lib/apt/methods/gpgv mr, /usr/share/dpkg/** r, /usr/share/keyrings/* r, /var/lib/ubuntu-advantage/apt-esm/** r, @{PROC}/@{pid}/fd/ r, # apt-config command needs these # Note: observed only in xenial tests, but makes sense for all releases /etc/apt/** r, /var/lib/apt/** r, # LP: #2067810 /var/lib/dpkg/** r, } # Site-specific additions and overrides. See local/README for details. #include <local/ubuntu_pro_esm_cache> } # these profiles were initially subprofiles of cloud-id, but: # a) that crashes the kernel # https://gitlab.com/apparmor/apparmor/-/issues/346 # b) <= bionic doesn't like the // or - chars in profile names # https://gitlab.com/apparmor/apparmor/-/commit/99755daafb8cfde4df542b66f656597a482129ac profile ubuntu_pro_esm_cache_systemctl flags=(attach_disconnected) { include <abstractions/base> capability net_admin, capability sys_ptrace, ptrace read peer=unconfined, # LP: #2067319 /{,usr/}bin/systemctl mr, /run/systemd/private rw, /run/systemd/** r, @{PROC}/cmdline r, # GH: #3119 @{PROC}/1/* r, @{PROC}/@{pid}/stat r, @{PROC}/sys/kernel/osrelease r, # GH: 3119 /sys/firmware/efi/efivars/** r, } profile ubuntu_pro_esm_cache_systemd_detect_virt flags=(attach_disconnected) { include <abstractions/base> capability sys_ptrace, ptrace read peer=unconfined, /{,usr/}bin/systemd-detect-virt mr, /run/systemd/** r, /sys/devices/virtual/** r, # GH: #3119 /sys/firmware/efi/efivars/** r, @{PROC}/@{pid}/status r, @{PROC}/@{pid}/stat r, @{PROC}/1/environ r, @{PROC}/1/sched r, @{PROC}/cmdline r, @{PROC}/1/cmdline r, @{PROC}/sys/kernel/osrelease r, }PK ! @+��q q abstractions/nisnu �[��� # ------------------------------------------------------------------ # # Copyright (C) 2002-2006 Novell/SUSE # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # NIS rules /var/yp/binding/* r, # portmapper may ask root processes to do nis/ldap at low ports capability net_bind_service, # Include additions to the abstraction include if exists <abstractions/nis.d> PK ! ��#}� � abstractions/audionu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2002-2009 Novell/SUSE # Copyright (C) 2009 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, /dev/admmidi* rw, /dev/adsp* rw, /dev/aload* rw, /dev/amidi* rw, /dev/audio* rw, /dev/dmfm* rw, /dev/dmmidi* rw, /dev/dsp* rw, /dev/midi* rw, /dev/mixer* rw, /dev/mpu401data rw, /dev/mpu401stat rw, /dev/patmgr* rw, /dev/phone* rw, /dev/radio* rw, /dev/rmidi* rw, /dev/sequencer rw, /dev/sequencer2 rw, /dev/smpte* rw, /dev/snd/* rw, /dev/sound/* rw, @{PROC}/asound/** rw, /usr/share/alsa/** r, /usr/share/sounds/** r, owner @{HOME}/.esd_auth r, /etc/asound.conf r, owner @{HOME}/.asoundrc r, /etc/esound/esd.conf r, # libao /etc/libao.conf r, owner @{HOME}/.libao r, # libcanberra owner @{HOME}/.cache/event-sound-cache.* rwk, # pulse /etc/pulse/ r, /etc/pulse/** r, /dev/shm/ r, @{run}/shm/ r, owner /dev/shm/pulse-shm* rwk, owner @{run}/shm/pulse-shm* rwk, owner @{HOME}/.pulse-cookie rwk, owner @{HOME}/.pulse/ rw, owner @{HOME}/.pulse/* rwk, owner @{run}/user/*/pulse/ rw, owner @{run}/user/*/pulse/{native,pid} rwk, owner @{HOME}/.config/pulse/*.conf r, owner @{HOME}/.config/pulse/client.conf.d/{,*.conf} r, owner @{HOME}/.config/pulse/cookie rwk, owner /tmp/pulse-*/ rw, owner /tmp/pulse-*/* rw, # libgnome2 /etc/sound/ r, /etc/sound/** r, # openal /etc/alsa/conf.d/{,*} r, /etc/openal/alsoft.conf r, owner @{HOME}/.alsoftrc r, /usr/{,local/}share/openal/hrtf/{,**} r, owner @{HOME}/.local/share/openal/hrtf/{,**} r, # wildmidi /etc/wildmidi/wildmidi.cfg r, # Include additions to the abstraction include if exists <abstractions/audio.d> PK ! ��F� � abstractions/hosts_accessnu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2020 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, /etc/hosts.deny r, /etc/hosts.allow r, include if exists <abstractions/hosts_access.d> PK ! ���U U abstractions/ubuntu-browsersnu �[��� # vim:syntax=apparmor # # abstraction for allowing access to graphical browsers in Ubuntu # # Users of this abstraction need to include the ubuntu-helpers abstraction # in the toplevel profile. Eg: # include <abstractions/ubuntu-helpers> abi <abi/3.0>, /usr/bin/arora Cx -> sanitized_helper, /usr/bin/dillo Cx -> sanitized_helper, /usr/bin/Dooble Cx -> sanitized_helper, /usr/bin/epiphany Cx -> sanitized_helper, /usr/bin/epiphany-browser Cx -> sanitized_helper, /usr/bin/epiphany-webkit Cx -> sanitized_helper, /usr/lib/fennec-*/fennec Cx -> sanitized_helper, /usr/bin/kazehakase Cx -> sanitized_helper, /usr/bin/konqueror Cx -> sanitized_helper, /usr/bin/midori Cx -> sanitized_helper, /usr/bin/netsurf Cx -> sanitized_helper, /usr/bin/seamonkey Cx -> sanitized_helper, /usr/bin/sensible-browser Pixr, /usr/bin/chromium{,-browser} Cx -> sanitized_helper, /usr/lib{,64}/chromium{,-browser}/chromium{,-browser} Cx -> sanitized_helper, # this should cover all firefox browsers and versions (including shiretoko # and abrowser) /usr/bin/firefox Cxr -> sanitized_helper, /usr/lib{,64}/firefox*/firefox* Cx -> sanitized_helper, # Iceweasel /usr/bin/iceweasel Cxr -> sanitized_helper, /usr/lib/iceweasel/iceweasel Cx -> sanitized_helper, # some unpackaged, but popular browsers /usr/lib/icecat-*/icecat Cx -> sanitized_helper, /usr/bin/opera Cx -> sanitized_helper, /opt/google/chrome{,-beta,-unstable}/google-chrome{,-beta,-unstable} Cx -> sanitized_helper, /opt/brave.com/brave{,-beta,-dev,-nightly}/brave-browser{,-beta,-dev,-nightly} Cx -> sanitized_helper, PK ! �A A abstractions/vulkannu �[��� # vim:syntax=apparmor # Vulkan access requirements abi <abi/3.0>, # System files /dev/dri/ r, # libvulkan_radeon.so, libvulkan_intel.so (Mesa) /etc/glvnd/egl_vendor.d/{*,.json} r, /etc/vulkan/icd.d/{,*.json} r, /etc/vulkan/{explicit,implicit}_layer.d/{,*.json} r, # for drmGetMinorNameForFD() from libvulkan_intel.so (Mesa) @{sys}/devices/@{pci_bus}/*/drm/ r, @{sys}/devices/@{pci_bus}/*/drm/card[0-9]/gt_{max,min}_freq_mhz r, # anv_enumerate_physical_devices() from libvulkan_intel.so @{sys}/devices/@{pci_bus}/*/drm/card[0-9]/metrics/ r, # anv_enumerate_physical_devices() from libvulkan_intel.so @{sys}/devices/@{pci_bus}/*/drm/card[0-9]/metrics/????????-????-????-????-????????????/id r, # anv_enumerate_physical_devices() from libvulkan_intel.so /usr/share/glvnd/egl_vendor.d/{,*.json} r, /usr/share/vulkan/icd.d/{,*.json} r, /usr/share/vulkan/{explicit,implicit}_layer.d/{,*.json} r, # User files owner @{HOME}/.local/share/vulkan/implicit_layer.d/{,*.json} r, # Include additions to the abstraction include if exists <abstractions/vulkan.d> PK ! �Jt 4 4 abstractions/cups-clientnu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2009-2012 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # discoverable system configuration for non-local cupsd /etc/cups/client.conf r, # client should be able to talk the local cupsd @{run}/cups/cups.sock rw, # client should be able to read user-specified cups configuration owner @{HOME}/.cups/client.conf r, owner @{HOME}/.cups/lpoptions r, # Include additions to the abstraction include if exists <abstractions/cups-client.d> PK ! ���E E abstractions/smbpassnu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2009 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # libpam-smbpass/pam_smbpass.so permissions /var/lib/samba/*.[lt]db rwk, # Include additions to the abstraction include if exists <abstractions/smbpass.d> PK ! �;�~ abstractions/kerberosclientnu �[��� # ------------------------------------------------------------------ # # Copyright (C) 2002-2009 Novell/SUSE # Copyright (C) 2009-2011 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # files required by kerberos client programs /usr/lib{,32,64}/krb5/plugins/libkrb5/ r, /usr/lib{,32,64}/krb5/plugins/libkrb5/* mr, /usr/lib/@{multiarch}/krb5/plugins/libkrb5/ r, /usr/lib/@{multiarch}/krb5/plugins/libkrb5/* mr, /usr/lib{,32,64}/krb5/plugins/preauth/ r, /usr/lib{,32,64}/krb5/plugins/preauth/* mr, /usr/lib/@{multiarch}/krb5/plugins/preauth/ r, /usr/lib/@{multiarch}/krb5/plugins/preauth/* mr, /etc/krb5.keytab rk, /etc/krb5.conf r, /etc/krb5.conf.d/ r, /etc/krb5.conf.d/* r, # config files found via strings on libs /etc/krb.conf r, /etc/krb.realms r, /etc/srvtab r, # credential caches /tmp/krb5cc* r, # Include additions to the abstraction include if exists <abstractions/kerberosclient.d> PK ! �� � abstractions/user-mailnu �[��� # ------------------------------------------------------------------ # # Copyright (C) 2002-2006 Novell/SUSE # Copyright (C) 2014 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # location of user mail, spool and mboxes owner @{HOME}/[mM]ail/ r, owner @{HOME}/[mM]ail/** rwl, owner @{HOME}/postponed* rwl, /var/{,spool/}mail/ r, owner /var/{,spool/}mail/* rwl, owner @{HOME}/mbox.lock* rwl, owner @{HOME}/mbox rw, owner @{HOME}/inbox rw, owner @{HOME}/.forward r, owner @{HOME}/Maildir/ r, owner @{HOME}/Maildir/** rwl, # Include additions to the abstraction include if exists <abstractions/user-mail.d> PK ! 6�ɯ= = abstractions/mozcnu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2016 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, unix (connect, receive, send) type=stream peer=(addr="@tmp/.mozc.*"), # Include additions to the abstraction include if exists <abstractions/mozc.d> PK ! ��k�) ) abstractions/cryptonu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2002-2009 Novell/SUSE # Copyright (C) 2009-2011 Canonical Ltd. # Copyright (C) 2021 Christian Boltz # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, @{etc_ro}/gcrypt/random.conf r, @{PROC}/sys/crypto/fips_enabled r, # libgcrypt reads some flags from /proc @{PROC}/sys/crypto/* r, # crypto policies used by various libraries /etc/crypto-policies/*/*.txt r, /usr/share/crypto-policies/*/*.txt r, include if exists <abstractions/crypto.d> PK ! @+�Ԝ � abstractions/aspellnu �[��� # vim:syntax=apparmor # aspell permissions abi <abi/3.0>, # per-user settings and dictionaries owner @{HOME}/.aspell.*.{pws,prepl} rwk, # system libraries and dictionaries /usr/lib/aspell/ r, /usr/lib/aspell/* r, /usr/lib/aspell/*.so m, /usr/share/aspell/ r, /usr/share/aspell/* r, /var/lib/aspell/* r, # Include additions to the abstraction include if exists <abstractions/aspell.d> PK ! �Tv�. . abstractions/php-workernu �[��� # vim:syntax=apparmor # This file contains basic permissions for php-fpm workers abi <abi/3.0>, # load common libraries and their support files include <abstractions/base> # common php files and support files that php needs include <abstractions/php> signal (receive) peer=php-fpm, # This is some php opcaching file /tmp/.ZendSem.* rwk, # I think this is adaptive memory management /sys/devices/system/node/* r, /sys/devices/system/node/*/meminfo r, /sys/devices/system/node/ r, include if exists <abstractions/php-worker.d> PK ! �,�� � abstractions/enchantnu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2010 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # abstraction for Enchant spellchecking frontend /usr/share/enchant/ r, /usr/share/enchant/enchant.ordering r, /usr/share/enchant-2/ r, /usr/share/enchant-2/enchant.ordering r, # aspell include <abstractions/aspell> /var/lib/dictionaries-common/aspell/ r, /var/lib/dictionaries-common/aspell/* r, # hspell /usr/share/hspell/ r, /usr/share/hspell/*.wgz.* r, # hunspell /usr/share/hunspell/ r, /usr/share/hunspell/* r, # ispell /usr/lib/ispell/ r, /usr/lib/ispell/*.hash r, /usr/share/dict/ r, /usr/share/dict/* r, /var/lib/dictionaries-common/ r, /var/lib/dictionaries-common/{ispell,wordlist}/ r, /var/lib/dictionaries-common/{ispell,wordlist}/* r, # myspell /usr/share/myspell/ r, /usr/share/myspell/** r, # voikko /usr/lib/voikko/ r, /usr/lib/voikko/2/ r, /usr/lib/voikko/2/mor-standard/ r, /usr/lib/voikko/2/mor-standard/voikko* r, # zemberek /usr/share/java/ r, /usr/share/java/zemberek-[0-9]*.jar r, /usr/share/java/zemberek-tr-[0-9]*.jar r, # per-user dictionaries owner @{HOME}/.config/enchant/ rw, owner @{HOME}/.config/enchant/* rwk, # Include additions to the abstraction include if exists <abstractions/enchant.d> PK ! ڌ��s s abstractions/kde-open5nu �[��� # vim:syntax=apparmor abi <abi/3.0>, # This abstraction is designed to be used in a child profile to limit what # confined application can invoke via kde-open5 helper. # # NOTE: most likely you want to use xdg-open abstraction instead for better # portability across desktop environments, unless you are sure that confined # application only uses /usr/bin/kde-open5 directly. # # Usage example: # # ``` # profile foo /usr/bin/foo { # ... # /usr/bin/kde-open5 rPx -> foo//kde-open5, # ... # } # end of main profile # # # out-of-line child profile # profile foo//kde-open5 { # include <abstractions/kde-open5> # # # needed for ubuntu-* abstractions # include <abstractions/ubuntu-helpers> # # # Only allow to handle http[s]: and mailto: links # include <abstractions/ubuntu-browsers> # include <abstractions/ubuntu-email> # # # Add if accesibility access is considered as required # # (for message boxe in case exo-open fails) # include <abstractions/dbus-accessibility> # # # Add if audio support for message box is # # considered as required. # include if exists <abstractions/gstreamer> # # # < add additional allowed applications here > # } # ``` include <abstractions/audio> # for alert messages include <abstractions/base> include <abstractions/dbus-accessibility-strict> include <abstractions/dbus-network-manager-strict> include <abstractions/dbus-session-strict> include <abstractions/dbus-strict> include <abstractions/kde-icon-cache-write> include <abstractions/kde> include <abstractions/nameservice> # for IceProcessMessages () from libICE.so (called by libQtCore.so) include <abstractions/openssl> include <abstractions/qt5> include <abstractions/recent-documents-write> include <abstractions/X> # Main executables /usr/bin/kde-open5 rix, /usr/lib/@{multiarch}/libexec/kf5/kioslave{,5} ix, # DBus dbus bus=session interface=org.kde.KLauncher member=start_service_by_desktop_path peer=(name=org.kde.klauncher5), # Denied system files deny /usr/lib/vlc/plugins/* w, # VLC backed tries to create plugins.dat.16109 # libpcre2 on openSUSE tries to mmap() shared memory on directory. # see: https://lists.ubuntu.com/archives/apparmor/2019-January/011925.html # AppArmor does not allow to distinguish "real" file vs shared memory one, # so we deny this path to protect from loading exploits from /tmp. deny /tmp/#[0-9]*[0-9] m, # System files /dev/tty r, /etc/xdg/accept-languages.codes r, /etc/xdg/menus/{,*/} r, /usr/share/*fonts*/conf.avail/*.conf r, # for openSUSE, when showing error message box /usr/share/ghostscript/fonts/ r, # for openSUSE, when showing error message box /usr/share/hwdata/pnp.ids r, # for openSUSE, when showing error message box, for QXcbConnection::initializeScreens() from libQt5XcbQpa.so /usr/share/icu/[0-9]*.[0-9]*/*.dat r, # for openSUSE /usr/share/kservices5/{,**} r, # for KProtocolManager::defaultUserAgent() from libKF5KIOCore.so /usr/share/mime/ r, /usr/share/mime/generic-icons r, /usr/share/plasma/look-and-feel/*/contents/defaults r, # TODO: move to kde abstraction? /usr/share/sounds/ r, @{PROC}/sys/kernel/core_pattern r, @{PROC}/sys/kernel/random/boot_id r, # User files owner /tmp/xauth-[0-9]*-_[0-9] r, # for libQt5XcbQpa.so owner @{run}/user/[0-9]*/#[0-9]* rw, # for /run/user/1000/#13 owner @{run}/user/[0-9]*/kioclient*slave-socket lrw -> @{run}/user/[0-9]/#[0-9]*, # for KIO::Slave::holdSlave(QString const&, QUrl const&) () from libKF5KIOCore.so (not 100% sure) owner @{HOME}/.cache/kio_http/ rw, # Include additions to the abstraction include if exists <abstractions/kde-open5.d> PK ! ��I� � abstractions/phpnu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2002-2006 Novell/SUSE # Copyright (C) 2009-2010 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # shared snippets for config files /etc/php{,5,7,8}/**/ r, /etc/php{,5,7,8}/**.ini r, # Xlibs /usr/X11R6/lib{,32,64}/lib*.so* mr, # php extensions /usr/lib{64,}/php{,5,7,8}/*/*.so mr, # ICU (unicode support) data tables /usr/share/icu/*/*.dat r, # php session mmap socket /var/lib/php{,5,7,8}/session_mm_* rwlk, # file based session handler /var/lib/php{,5,7,8}/sess_* rwlk, /var/lib/php{,5,7,8}/sessions/* rwlk, # php libraries /usr/share/php{,5,7,8}/ r, /usr/share/php{,5,7,8}/** mr, # MySQL extension /usr/share/mysql/** r, # Zend opcache /tmp/.ZendSem.* rwlk, # Include additions to the abstraction include if exists <abstractions/php.d> PK ! N:4� � abstractions/rubynu �[��� # ------------------------------------------------------------------ # # Copyright (C) 2002-2006 Novell/SUSE # Copyright (C) 2009 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, /usr/lib{,32,64}/ruby/1.[89]{.[0-9],}/ r, /usr/lib{,32,64}/ruby/1.[89]{.[0-9],}/**.rb r, /usr/lib{,32,64}/ruby/1.[89]{.[0-9],}/*-linux/**.so mr, /usr/{,local/}lib{,32,64}/ruby/{site,vendor}_ruby/1.[89]{.[0-9],}/ r, /usr/{,local/}lib{,32,64}/ruby/{site,vendor}_ruby/1.[89]{.[0-9],}/**.rb r, /usr/{,local/}lib{,32,64}/ruby/{site,vendor}_ruby/1.[89]{.[0-9],}/*-linux/**.so mr, /usr/lib{,32,64}/ruby/gems/1.[89]{.[0-9],}/ r, /usr/lib{,32,64}/ruby/gems/1.[89]{.[0-9],}/** r, # Include additions to the abstraction include if exists <abstractions/ruby.d> PK ! �N��� � abstractions/dbusnu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2009-2013 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # This abstraction grants full system bus access. Consider using the # dbus-strict abstraction for fine-grained bus mediation. include <abstractions/dbus-strict> dbus bus=system, # Include additions to the abstraction include if exists <abstractions/dbus.d> PK ! ���=� � abstractions/xadnu �[��� # ------------------------------------------------------------------ # # Copyright (C) 2007 Novell/SUSE # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, /opt/novell/xad/lib/ r, /opt/novell/xad/lib/lib*.so* mr, /opt/novell/xad/lib/gss/*.so* mr, /opt/novell/lib/libpthread_ext*.so* mr, /opt/novell/lib/libccs2.so* mr, /opt/novell/xad/lib64/ r, /opt/novell/xad/lib64/lib*.so* mr, /opt/novell/xad/lib64/gss/*.so* mr, /opt/novell/lib64/libpthread_ext*.so* mr, /opt/novell/lib64/libccs2.so* mr, /etc/opt/novell/xad/krb5.conf r, /etc/opt/novell/nici.cfg r, /var/opt/novell/nici/* r, /var/opt/novell/nici/*/ r, /var/opt/novell/nici/*/* rw, # Include additions to the abstraction include if exists <abstractions/xad.d> PK ! P�9W� � abstractions/ubuntu-feed-readersnu �[��� # vim:syntax=apparmor # # abstraction for allowing graphical news feed readers in Ubuntu # # Users of this abstraction need to include the ubuntu-helpers abstraction # in the toplevel profile. Eg: # include <abstractions/ubuntu-helpers> abi <abi/3.0>, /usr/bin/akregator Cxr -> sanitized_helper, /usr/bin/liferea-add-feed Cxr -> sanitized_helper, # Include additions to the abstraction include if exists <abstractions/ubuntu-feed-readers.d> PK ! V�� � abstractions/svn-repositoriesnu �[��� # ------------------------------------------------------------------ # # Copyright (C) 2002-2006 Novell/SUSE # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # This little snippet should abstract the read/write access to a repository. # it is intended to be included in profiles for svnserve/apache2 and maybe # some repository viewers like trac/viewvc # no hooks exec by default; please define whatever you need explicitely. /srv/svn/**/conf/* r, /srv/svn/**/format r, /srv/svn/**/db/fs-type r, /srv/svn/**/db/format r, # FSFS /srv/svn/**/db/ r, /srv/svn/**/db/uuid r, /srv/svn/**/db/write-lock rwl, /srv/svn/**/db/current rwl, /srv/svn/**/db/current*.tmp rwl, /srv/svn/**/db/revs/ r, /srv/svn/**/db/revs/* rw, /srv/svn/**/db/revprops/ r, /srv/svn/**/db/revprops/* rw, /srv/svn/**/db/transactions/** rw, # BDB /srv/svn/**/db/DB_CONFIG r, /srv/svn/**/db/__db.[0-9]* rwl, /srv/svn/**/db/log.[0-9]* rwl, /srv/svn/**/db/nodes rwl, /srv/svn/**/db/revisions rwl, /srv/svn/**/db/transactions rwl, /srv/svn/**/db/copies rwl, /srv/svn/**/db/changes rwl, /srv/svn/**/db/representations rwl, /srv/svn/**/db/strings rwl, /srv/svn/**/db/uuids rwl, /srv/svn/**/db/locks rwl, /srv/svn/**/db/lock-tokens rwl, # temp files /tmp/apr* rwl, /var/tmp/apr* rwl, /tmp/report*.tmp rwl, # Include additions to the abstraction include if exists <abstractions/svn-repositories.d> PK ! ʋ]� � abstractions/gtknu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, /usr/share/themes/{,**} r, /usr/share/gtksourceview-[0-9]*/{,**} r, /usr/share/gtk-2.0/ r, /usr/share/gtk-2.0/gtkrc r, /usr/share/gtk-3.0/ r, /usr/share/gtk-3.0/settings.ini r, /etc/gtk-2.0/ r, /etc/gtk-2.0/gtkrc r, /etc/gtk-3.0/ r, /etc/gtk-3.0/*.conf r, /etc/gtk/gtkrc r, owner @{HOME}/.themes/{,**} r, owner @{HOME}/.local/share/themes/{,**} r, owner @{HOME}/.gtk r, owner @{HOME}/.gtkrc r, owner @{HOME}/.gtkrc-2.0 r, owner @{HOME}/.gtk-bookmarks r, owner @{HOME}/.config/gtkrc r, owner @{HOME}/.config/gtkrc-2.0 r, owner @{HOME}/.config/gtk-3.0/ rw, owner @{HOME}/.config/gtk-3.0/settings.ini r, owner @{HOME}/.config/gtk-3.0/bookmarks r, owner @{HOME}/.config/gtk-3.0/gtk.css r, # for gtk file dialog owner @{HOME}/.config/gtk-2.0/ rw, owner @{HOME}/.config/gtk-2.0/gtkfilechooser.ini* rw, # .Xauthority file required for X connections owner @{HOME}/.Xauthority r, # Xsession errors file owner @{HOME}/.xsession-errors w, # Include additions to the abstraction include if exists <abstractions/gtk.d> PK ! �v<�� � ! abstractions/private-files-strictnu �[��� # vim:syntax=apparmor # privacy-violations-strict contains additional rules for sensitive # files that you want to explicitly deny access abi <abi/3.0>, include <abstractions/private-files> # potentially extremely sensitive files audit deny @{HOME}/.aws/{,**} mrwkl, audit deny @{HOME}/.gnupg/{,**} mrwkl, audit deny @{HOME}/.ssh/{,**} mrwkl, audit deny @{HOME}/.gnome2_private/{,**} mrwkl, audit deny @{HOME}/.gnome2/ w, audit deny @{HOME}/.gnome2/keyrings/{,**} mrwkl, # don't allow access to any gnome-keyring modules audit deny @{run}/user/[0-9]*/keyring** mrwkl, audit deny @{HOME}/.mozilla/{,**} mrwkl, audit deny @{HOME}/.config/ w, audit deny @{HOME}/.config/chromium/{,**} mrwkl, audit deny @{HOME}/.config/evolution/{,**} mrwkl, audit deny @{HOME}/.evolution/{,**} mrwkl, audit deny @{HOME}/.{,mozilla-}thunderbird/{,**} mrwkl, audit deny @{HOME}/.kde{,4}/{,share/,share/apps/} w, audit deny @{HOME}/.kde{,4}/share/apps/kmail{,2}/{,**} mrwkl, audit deny @{HOME}/.kde{,4}/share/apps/kwallet/{,**} mrwkl, audit deny @{HOME}/.local/share/kwalletd/{,**} mrwkl, # Include additions to the abstraction include if exists <abstractions/private-files-strict.d> PK ! �> abstractions/gio-opennu �[��� # vim:syntax=apparmor abi <abi/3.0>, # This abstraction is designed to be used in a child profile to limit what # confined application can invoke via gio helper. # # NOTE: most likely you want to use xdg-open abstraction instead for better # portability across desktop environments, unless you are sure that confined # application only uses /usr/bin/gio directly. # # Usage example: # # ``` # profile foo /usr/bin/foo { # ... # /usr/bin/gio rPx -> foo//gio-open, # ... # } # end of main profile # # # out-of-line child profile # profile foo//gio-open { # include <abstractions/gio-open> # # # needed for ubuntu-* abstractions # include <abstractions/ubuntu-helpers> # # # Only allow to handle http[s]: and mailto: links # include <abstractions/ubuntu-browsers> # include <abstractions/ubuntu-email> # # # < add additional allowed applications here > # } include <abstractions/base> include <abstractions/dbus-session-strict> # Main executables /usr/bin/gio rix, /usr/bin/gio-launch-desktop ix, # for OpenSUSE /usr/lib/@{multiarch}/glib-[0-9]*/gio-launch-desktop ix, # System files /etc/gnome/defaults.list r, /usr/share/mime/* r, /usr/share/{,*/}applications/{,**} r, /var/cache/gio-[0-9]*.[0-9]*/gnome-mimeapps.list r, /var/lib/snapd/desktop/applications/{,**} r, # User files owner @{HOME}/.config/mimeapps.list r, owner @{HOME}/.local/share/applications/{,*.desktop} r, owner @{PROC}/@{pid}/fd/ r, # Include additions to the abstraction include if exists <abstractions/gio-open.d> PK ! ;�� � abstractions/consolesnu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2002-2005 Novell/SUSE # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # there are three common ways to refer to consoles /dev/console rw, /dev/tty rw, # this next entry is a tad unfortunate; /dev/tty will always be # associated with the controlling terminal by the kernel, but if a # program uses the /dev/pts/ interface, it actually has access to # -all- xterm, sshd, etc, terminals on the system. /dev/pts/[0-9]* rw, /dev/pts/ r, # Include additions to the abstraction include if exists <abstractions/consoles.d> PK ! ohr�0 0 ! abstractions/ubuntu-media-playersnu �[��� # vim:syntax=apparmor # # abstraction for allowing access to media players in Ubuntu # # Users of this abstraction need to include the ubuntu-helpers abstraction # in the toplevel profile. Eg: # include <abstractions/ubuntu-helpers> abi <abi/3.0>, /usr/bin/amarok Cxr -> sanitized_helper, /usr/bin/audacious2 Cxr -> sanitized_helper, /usr/bin/audacity Cxr -> sanitized_helper, /usr/bin/bangarang Cxr -> sanitized_helper, /usr/bin/banshee Cxr -> sanitized_helper, /usr/bin/banshee-1 Cxr -> sanitized_helper, /usr/bin/decibel Cxr -> sanitized_helper, /usr/bin/dragon Cxr -> sanitized_helper, /usr/bin/esperanza Cxr -> sanitized_helper, /usr/bin/exaile Cxr -> sanitized_helper, /usr/bin/freevo Cxr -> sanitized_helper, /usr/bin/gmerlin Cxr -> sanitized_helper, /usr/bin/gxmms Cxr -> sanitized_helper, /usr/bin/gxmms2 Cxr -> sanitized_helper, /usr/bin/hornsey Cxr -> sanitized_helper, /usr/bin/jlgui Cxr -> sanitized_helper, /usr/bin/juk Cxr -> sanitized_helper, /usr/bin/kaffeine Cxr -> sanitized_helper, /usr/bin/listen Cxr -> sanitized_helper, /usr/share/minirok/minirok.py Cxr -> sanitized_helper, # mplayer /etc/mplayerplug-in.conf r, /usr/bin/gmplayer Cxr -> sanitized_helper, /usr/bin/gnome-mplayer Cxr -> sanitized_helper, /usr/bin/kmplayer Cxr -> sanitized_helper, /usr/bin/mplayer Cxr -> sanitized_helper, /usr/bin/smplayer Cxr -> sanitized_helper, /usr/bin/muine Cxr -> sanitized_helper, /usr/bin/potamus Cxr -> sanitized_helper, /usr/bin/promoe Cxr -> sanitized_helper, /usr/bin/qmmp Cxr -> sanitized_helper, /usr/bin/quodlibet Cxr -> sanitized_helper, /usr/bin/rhythmbox Cxr -> sanitized_helper, /usr/bin/strange-quark Cxr -> sanitized_helper, /usr/bin/swfdec-player Cxr -> sanitized_helper, /usr/bin/timidity Cxr -> sanitized_helper, /usr/lib/totem/** ixr, /usr/bin/totem-gstreamer Cxr -> sanitized_helper, /usr/bin/totem-xine Cxr -> sanitized_helper, /usr/bin/totem Cxr -> sanitized_helper, /usr/bin/vlc Cxr -> sanitized_helper, /usr/bin/xfmedia Cxr -> sanitized_helper, /usr/bin/xmms Cxr -> sanitized_helper, # gnash /usr/bin/gtk-gnash ixr, /etc/gnashrc r, /etc/gnashpluginrc r, owner @{HOME}/.gnash/ rw, owner @{HOME}/.gnash/** rw, # Include additions to the abstraction include if exists <abstractions/ubuntu-media-players.d> PK ! �� Ā � abstractions/opencl-nvidianu �[��� # vim:syntax=apparmor abi <abi/3.0>, # OpenCL access requirements for NVIDIA implementation include <abstractions/nvidia> include <abstractions/opencl-common> # Executables # https://github.com/NVIDIA/nvidia-modprobe # This setuid executable is used to create various device files and load the # the nvidia kernel module. /usr/bin/nvidia-modprobe Px -> nvidia_modprobe, # System files # libnvidia-opencl.so rules: /dev/nvidia-uvm rw, /dev/nvidia-uvm-tools rw, @{sys}/devices/@{pci_bus}/**/config r, @{sys}/devices/system/memory/block_size_bytes r, /usr/share/nvidia/** r, @{PROC}/devices r, @{PROC}/sys/vm/mmap_min_addr r, # User files owner @{HOME}/.nv/ComputeCache/ w, owner @{HOME}/.nv/ComputeCache/** rw, owner @{HOME}/.nv/ComputeCache/index rwk, # Include additions to the abstraction include if exists <abstractions/opencl-nvidia.d> PK ! t1�.� � abstractions/ibusnu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2010 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # abstraction for ibus input methods owner @{HOME}/.config/ibus/ r, owner @{HOME}/.config/ibus/bus/ rw, owner @{HOME}/.config/ibus/bus/* rw, # abstract path in ibus >= 1.5.22 uses $XDG_CACHE_HOME (ie, @{HOME}/.cache) # This should use this, but due to LP: #1856738 we cannot #unix (connect, receive, send) # type=stream # peer=(addr="@@{HOME}/.cache/ibus/dbus-*"), unix (connect, receive, send) type=stream peer=(addr="@/home/*/.cache/ibus/dbus-*"), # Include additions to the abstraction include if exists <abstractions/ibus.d> PK ! 4�{� � ! abstractions/ubuntu-console-emailnu �[��� # vim:syntax=apparmor # # abstraction for allowing console email clients in Ubuntu. These will # typically also need a terminal, so when using this abstraction, should also # do something like: # # include <abstractions/ubuntu-gnome-terminal> # # Users of this abstraction need to include the ubuntu-helpers abstraction # in the toplevel profile. Eg: # include <abstractions/ubuntu-helpers> abi <abi/3.0>, /usr/bin/alpine Cx -> sanitized_helper, /usr/bin/citadel Cx -> sanitized_helper, /usr/bin/cone Cx -> sanitized_helper, /usr/bin/elmo Cx -> sanitized_helper, /usr/bin/mutt Cx -> sanitized_helper, # Include additions to the abstraction include if exists <abstractions/ubuntu-console-email.d> PK ! �A: � � abstractions/xdg-opennu �[��� # vim:syntax=apparmor abi <abi/3.0>, # This abstraction is designed to be used in a child profile to limit what # confined application can invoke via xdg-open helper. xdg-open abstraction # will allow to use gio-open, kde-open5 and other helpers of the different # desktop environments. # # Usage example: # # ``` # profile foo /usr/bin/foo { # ... # /usr/bin/xdg-open rPx -> foo//xdg-open, # ... # } # end of main profile # # # out-of-line child profile # profile foo//xdg-open { # include <abstractions/xdg-open> # # # Enable a11y support if considered required by # # profile author for (rare) error message boxes. # include <abstractions/dbus-accessibility> # # # Enable gstreamer support if considered required by # # profile author for (rare) error message boxes. # include if exists <abstractions/gstreamer> # # # needed for ubuntu-* abstractions # include <abstractions/ubuntu-helpers> # # # Only allow to handle http[s]: and mailto: links # include <abstractions/ubuntu-browsers> # include <abstractions/ubuntu-email> # # # < add additional allowed applications here > # } # ``` include <abstractions/base> # for openin with `exo-open` include <abstractions/exo-open> # for opening with `gio open <uri>` include <abstractions/gio-open> # for opening with gvfs-open (deprecated) include <abstractions/gvfs-open> # for opening with kde-open5 include <abstractions/kde-open5> # Main executables /{,usr/}bin/{b,d}ash mr, /usr/bin/xdg-open r, # Additional executables /usr/bin/xdg-mime rix, /{,usr/}bin/cut rix, # for xdg-mime /{,usr/}bin/head rix, # for xdg-mime /{,usr/}bin/sed rix, # for xdg-open /{,usr/}bin/tr rix, # for xdg-mime /{,usr/}bin/which rix, # for xdg-open /{,usr/}bin/{grep,egrep} rix, # for xdg-open # System files /dev/pts/[0-9]* rw, /dev/tty w, /etc/gnome/defaults.list r, # for grep /usr/share/applications/mimeinfo.cache r, # for grep /usr/share/terminfo/s/screen r, # for bash on openSUSE /usr/share/{,*/}applications/{,*.desktop} r, # for xdg-mime /var/lib/menu-xdg/applications/ r, # for xdg-mime # Usr files owner @{HOME}/.local/share/applications/{,*.desktop} r, # Include additions to the abstraction include if exists <abstractions/xdg-open.d> PK ! ��F�| | abstractions/opencl-mesanu �[��� # vim:syntax=apparmor abi <abi/3.0>, # OpenCL access requirements for Mesa implementation include <abstractions/opencl-common> # Additional libraries /usr/lib/@{multiarch}/gallium-pipe/*.so mr, # libMesaOpenCL.so /usr/lib{,64}/gallium-pipe/*.so mr, # libMesaOpenCL.so on openSUSE # System files /dev/dri/ r, # libMesaOpenCL.so -> libdrm.so /dev/dri/render* rw, # libMesaOpenCL.so /etc/drirc r, # libMesaOpenCL.so # User files owner @{HOME}/.cache/mesa_shader_cache/{,**} rw, # libMesaOpenCL.so -> pipe_nouveau.so # Include additions to the abstraction include if exists <abstractions/opencl-mesa.d> PK ! ����* * abstractions/mdnsnu �[��� # ------------------------------------------------------------------ # # Copyright (C) 2002-2006 Novell/SUSE # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # mdnsd /etc/mdns.allow r, /etc/nss_mdns.conf r, @{run}/mdnsd w, # Include additions to the abstraction include if exists <abstractions/mdns.d> PK ! �?�� � abstractions/gnomenu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2002-2009 Novell/SUSE # Copyright (C) 2009-2011 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, include <abstractions/base> include <abstractions/fonts> include <abstractions/X> include <abstractions/freedesktop.org> include <abstractions/xdg-desktop> include <abstractions/user-tmp> include <abstractions/wayland> # systemwide gtk defaults /etc/gnome/gtkrc* r, /etc/gtk/* r, /usr/lib{,32,64}/gtk/** mr, /usr/lib/@{multiarch}/gtk/** mr, /usr/lib{,32,64}/gtk-[0-9]*/** mr, /usr/lib/@{multiarch}/gtk-[0-9]*/** mr, /usr/share/themes/ r, /usr/share/themes/** r, /usr/share/gtk-3.0/settings.ini r, # communitheme snap /snap/communitheme/*/share/themes/ r, /snap/communitheme/*/share/themes/** r, # for gnome 1 applications /etc/orbitrc r, # gtk-2 needed some new rights /etc/fonts/* r, /etc/gtk-*/* r, /etc/pango/* r, /usr/lib{,32,64}/pango/** mr, /usr/lib{,32,64}/gtk-*/** mr, /usr/lib{,32,64}/gdk-pixbuf-*/** mr, /usr/lib/@{multiarch}/pango/** mr, /usr/lib/@{multiarch}/gtk-*/** mr, /usr/lib/@{multiarch}/gdk-pixbuf-*/** mr, # per-user gtk configuration owner @{HOME}/.config/gtk-3.0/ w, owner @{HOME}/.config/gtk-3.0/* r, owner @{HOME}/.gnome/Gnome r, owner @{HOME}/.gtk r, owner @{HOME}/.gtkrc r, owner @{HOME}/.gtkrc-2.0 r, owner @{HOME}/.gtk-bookmarks r, owner @{HOME}/.themes/ r, owner @{HOME}/.themes/** r, owner @{user_share_dirs}/themes/ r, owner @{user_share_dirs}/themes/** r, # for gtk file dialog owner @{HOME}/.config/gtk-2.0/ w, owner @{HOME}/.config/gtk-2.0/** r, owner @{HOME}/.config/gtk-2.0/gtkfilechooser.ini* rw, # from evolution-mail owner @{HOME}/.gconfd/lock/* r, owner @{HOME}/.gnome/application-info r, # per-user font business owner @{HOME}/.fonts.cache-* rwl, # GtkComposeTable owner @{HOME}/.cache/gtk-3.0/** r, # icon caches /var/cache/**/icon-theme.cache r, /usr/share/**/icon-theme.cache r, # GLib schemas /usr/{local/,}share/glib-[0-9]*/schemas/ r, /usr/{local/,}share/glib-[0-9]*/schemas/** r, # gnome VFS modules /etc/gnome-vfs-2.0/modules/ r, /etc/gnome-vfs-2.0/modules/* r, /usr/lib/gnome-vfs-2.0/modules/*.so mr, /usr/lib/@{multiarch}/gnome-vfs-2.0/modules/*.so mr, # gvfs /usr/share/gvfs/remote-volume-monitors/ r, /usr/share/gvfs/remote-volume-monitors/* r, @{PROC}/@{pid}/mounts r, @{run}/mount/utab r, # printing /etc/papersize r, /etc/cups/lpoptions r, /usr/share/cups/charmaps/** r, # holds MIT-MAGIC-COOKIE for gnome owner @{run}/gdm/auth*/database r, # mime-types /etc/gnome/defaults.list r, /etc/xdg/{,*-}mimeapps.list r, /usr/share/gnome/applications/ r, /usr/share/gnome/applications/mimeinfo.cache r, # Allow connecting to the GNOME vfs socket (still need corresponding DBus # rules) unix (send, receive, connect) type=stream peer=(addr="@/dbus-vfs-daemon/socket-*"), # Include additions to the abstraction include if exists <abstractions/gnome.d> PK ! �˺� � abstractions/ubuntu-unity7-basenu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2013-2014 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # # Rules common to applications running under Unity 7 # include <abstractions/gnome> include <abstractions/dbus-session-strict> include <abstractions/dbus-strict> # # Access required for connecting to/communication with Unity HUD # dbus (send) bus=session path="/com/canonical/hud", dbus (send) bus=session interface="com.canonical.hud.*", dbus (send) bus=session path="/com/canonical/hud/applications/*", dbus (receive) bus=session path="/com/canonical/hud", dbus (receive) bus=session interface="com.canonical.hud.*", # # Allow access for connecting to/communication with the appmenu # # dbusmenu dbus (send) bus=session interface="com.canonical.AppMenu.*", dbus (receive, send) bus=session path=/com/canonical/menu/**, # gmenu dbus (receive, send) bus=session interface=org.gtk.Actions, dbus (receive, send) bus=session interface=org.gtk.Menus, # # Access required for using freedesktop notifications # dbus (send) bus=session path=/org/freedesktop/Notifications member=GetCapabilities, dbus (send) bus=session path=/org/freedesktop/Notifications member=GetServerInformation, dbus (send) bus=session path=/org/freedesktop/Notifications member=Notify, dbus (receive) bus=session member="Notify" peer=(name="org.freedesktop.DBus"), dbus (receive) bus=session path=/org/freedesktop/Notifications member=NotificationClosed, dbus (send) bus=session path=/org/freedesktop/Notifications member=CloseNotification, # accessibility dbus (send) bus=session peer=(name=org.a11y.Bus), dbus (receive) bus=session interface=org.a11y.atspi*, dbus (receive, send) bus=accessibility, # # Deny potentially dangerous access # deny dbus bus=session path=/com/canonical/[Uu]nity/[Dd]ebug**, # Include additions to the abstraction include if exists <abstractions/ubuntu-unity7-base.d> PK ! �qL� � abstractions/p11-kitnu �[��� # ------------------------------------------------------------------ # # Copyright (C) 2012 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, /etc/pkcs11/ r, /etc/pkcs11/pkcs11.conf r, /etc/pkcs11/modules/ r, /etc/pkcs11/modules/* r, /usr/lib{,32,64}/pkcs11/*.so mr, /usr/lib/@{multiarch}/pkcs11/*.so mr, /usr/share/p11-kit/modules/ r, /usr/share/p11-kit/modules/* r, # gnome-keyring pkcs11 module owner @{run}/user/[0-9]*/keyring*/pkcs11 rw, # p11-kit also supports reading user configuration from ~/.pkcs11 depending # on how /etc/pkcs11/pkcs11.conf is configured. This should generally not be # included in this abstraction. # Include additions to the abstraction include if exists <abstractions/p11-kit.d> PK ! .7Ĭ. . abstractions/fcitxnu �[��� # vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2016 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, include <abstractions/fcitx-strict> dbus bus=fcitx, # Include additions to the abstraction include if exists <abstractions/fcitx.d> PK ! �i=�� � abstractions/user-tmpnu �[��� # ------------------------------------------------------------------ # # Copyright (C) 2002-2009 Novell/SUSE # Copyright (C) 2009-2010 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # per-user tmp directories owner @{HOME}/tmp/** rwkl, owner @{HOME}/tmp/ rw, # global tmp directories owner /var/tmp/** rwkl, /var/tmp/ rw, owner /tmp/** rwkl, /tmp/ rw, # Include additions to the abstraction include if exists <abstractions/user-tmp.d> PK ! ��f�% % abstractions/nameservicenu �[��� # ------------------------------------------------------------------ # # Copyright (C) 2002-2009 Novell/SUSE # Copyright (C) 2009-2011 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # Many programs wish to perform nameservice-like operations, such as # looking up users by name or id, groups by name or id, hosts by name # or IP, etc. These operations may be performed through files, dns, # NIS, NIS+, LDAP, hesiod, wins, etc. Allow them all here. @{etc_ro}/group r, @{etc_ro}/host.conf r, @{etc_ro}/hosts r, @{etc_ro}/nsswitch.conf r, @{etc_ro}/gai.conf r, @{etc_ro}/passwd r, @{etc_ro}/protocols r, # libtirpc (used for NIS/YP login) needs this @{etc_ro}/netconfig r, # When using libnss-extrausers, the passwd and group files are merged from # an alternate path /var/lib/extrausers/group r, /var/lib/extrausers/passwd r, # When using sssd, the passwd and group files are stored in an alternate path # and the nss plugin also needs to talk to a pipe /var/lib/sss/mc/group r, /var/lib/sss/mc/initgroups r, /var/lib/sss/mc/passwd r, /var/lib/sss/pipes/nss rw, @{etc_ro}/resolv.conf r, # On systems where /etc/resolv.conf is managed programmatically, it is # a symlink to @{run}/(whatever program is managing it)/resolv.conf. @{run}/{resolvconf,NetworkManager,systemd/resolve,connman,netconfig}/resolv.conf r, @{etc_ro}/resolvconf/run/resolv.conf r, @{run}/systemd/resolve/stub-resolv.conf r, @{etc_ro}/samba/lmhosts r, @{etc_ro}/services r, # db backend /var/lib/misc/*.db r, # The Name Service Cache Daemon can cache lookups, sometimes leading # to vast speed increases when working with network-based lookups. @{run}/.nscd_socket rw, @{run}/nscd/socket rw, /{var/db,var/cache,var/lib,var/run,run}/nscd/{passwd,group,services,hosts} r, # nscd renames and unlinks files in it's operation that clients will # have open @{run}/nscd/db* rmix, # The nss libraries are sometimes used in addition to PAM; make sure # they are available /{usr/,}lib{,32,64}/libnss_*.so* mr, /{usr/,}lib/@{multiarch}/libnss_*.so* mr, @{etc_ro}/default/nss r, # avahi-daemon is used for mdns4 resolution @{run}/avahi-daemon/socket rw, # libnl-3-200 via libnss-gw-name @{PROC}/@{pid}/net/psched r, @{etc_ro}/libnl-*/classid r, # nis include <abstractions/nis> # ldap include <abstractions/ldapclient> # winbind include <abstractions/winbind> # likewise include <abstractions/likewise> # mdnsd include <abstractions/mdns> # kerberos include <abstractions/kerberosclient> #libnss-systemd include <abstractions/nss-systemd> # Also allow lookups for systemd-exec's DynamicUsers via D-Bus # https://www.freedesktop.org/software/systemd/man/systemd.exec.html dbus send bus=system path="/org/freedesktop/systemd1" interface="org.freedesktop.systemd1.Manager" member="{GetDynamicUsers,LookupDynamicUserByName,LookupDynamicUserByUID}" peer=(name="org.freedesktop.systemd1"), # resolve # # Allow access to the safe members of the systemd-resolved D-Bus API: # # https://www.freedesktop.org/wiki/Software/systemd/resolved/ # # This API may be used directly over the D-Bus system bus or it may be used # indirectly via the nss-resolve plugin: # # https://www.freedesktop.org/software/systemd/man/nss-resolve.html # #include <abstractions/dbus-strict> dbus send bus=system path="/org/freedesktop/resolve1" interface="org.freedesktop.resolve1.Manager" member="Resolve{Address,Hostname,Record,Service}" peer=(name="org.freedesktop.resolve1"), # TCP/UDP network access network inet stream, network inet6 stream, network inet dgram, network inet6 dgram, # TODO: adjust when support finer-grained netlink rules # Netlink raw needed for nscd network netlink raw, # interface details @{PROC}/@{pid}/net/route r, # Include additions to the abstraction include if exists <abstractions/nameservice.d> PK ! B�k�? ? abstractions/ubuntu-emailnu �[��� # vim:syntax=apparmor # # abstraction for allowing graphical email clients in Ubuntu # # Users of this abstraction need to include the ubuntu-helpers abstraction # in the toplevel profile. Eg: # include <abstractions/ubuntu-helpers> abi <abi/3.0>, /usr/bin/anjal Cx -> sanitized_helper, /usr/bin/balsa Cx -> sanitized_helper, /usr/bin/claws-mail Cx -> sanitized_helper, /usr/bin/evolution Cx -> sanitized_helper, /usr/bin/geary Cx -> sanitized_helper, /usr/bin/gnome-gmail Cx -> sanitized_helper, /usr/lib/GNUstep/Applications/GNUMail.app/GNUMail Cx -> sanitized_helper, /usr/bin/kmail Cx -> sanitized_helper, /usr/bin/mailody Cx -> sanitized_helper, /usr/bin/modest Cx -> sanitized_helper, /usr/bin/seamonkey Cx -> sanitized_helper, /usr/bin/sylpheed Cx -> sanitized_helper, /usr/bin/tkrat Cx -> sanitized_helper, /usr/bin/thunderbird Cx -> sanitized_helper, # used by gio-launch-desktop /usr/lib/thunderbird*/thunderbird{,.sh,-bin} Cx -> sanitized_helper, # Include additions to the abstraction include if exists <abstractions/ubuntu-email.d> PK ! ͔�m� � abstractions/nss-systemdnu �[��� # ------------------------------------------------------------------ # # Copyright (C) 2002-2009 Novell/SUSE # Copyright (C) 2009-2011 Canonical Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of version 2 of the GNU General Public # License published by the Free Software Foundation. # # ------------------------------------------------------------------ abi <abi/3.0>, # libnss-systemd # # https://systemd.io/USER_GROUP_API/ # https://systemd.io/USER_RECORD/ # https://www.freedesktop.org/software/systemd/man/nss-systemd.html # # Allow User/Group lookups via common VarLink socket APIs. Applications need # to either consult all of them or the io.systemd.Multiplexer frontend. @{run}/systemd/userdb/ r, @{run}/systemd/userdb/io.systemd.Multiplexer rw, @{run}/systemd/userdb/io.systemd.DynamicUser rw, # systemd-exec users @{run}/systemd/userdb/io.systemd.Home rw, # systemd-home dirs @{run}/systemd/userdb/io.systemd.NameServiceSwitch rw, # UNIX/glibc NSS @{run}/systemd/userdb/io.systemd.Machine rw, # systemd-machined @{PROC}/sys/kernel/random/boot_id r, include if exists <abstractions/nss-systemd.d> PK ! �i�<� � &