# vim:syntax=apparmor # ------------------------------------------------------------------ # # Copyright (C) 2019-2021 Mikhail Morfikov # # 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 , include @{FT_LIBDIR} = /{usr/,}lib/freetube @{FT_LIBDIR} += /{usr/,}lib/freetube-vue @{FT_LIBDIR} += /opt/FreeTube @{FT_LIBDIR} += /opt/FreeTube-Vue @{exec_path} = @{FT_LIBDIR}/freetube{,-vue} profile freetube @{exec_path} { include include include include include include include include include include include include include include # The following rules are needed only when the kernel.unprivileged_userns_clone option is set # to "1". capability sys_admin, capability sys_chroot, owner @{PROC}/@{pid}/setgroups w, owner @{PROC}/@{pid}/gid_map w, owner @{PROC}/@{pid}/uid_map w, network inet dgram, network inet6 dgram, network inet stream, network inet6 stream, network netlink raw, @{exec_path} mrix, @{FT_LIBDIR}/ r, @{FT_LIBDIR}/** r, @{FT_LIBDIR}/libffmpeg.so mr, @{FT_LIBDIR}/{swiftshader/,}libGLESv2.so mr, @{FT_LIBDIR}/{swiftshader/,}libEGL.so mr, @{FT_LIBDIR}/chrome-sandbox rPx, owner @{HOME}/ r, owner @{HOME}/.config/FreeTube/ rw, owner @{HOME}/.config/FreeTube/** rwk, /var/tmp/ r, /tmp/ r, owner /tmp/.org.chromium.Chromium.*/ rw, owner /tmp/.org.chromium.Chromium.*/SingletonCookie w, owner /tmp/.org.chromium.Chromium.*/SS w, owner /tmp/.org.chromium.Chromium.* rw, owner /tmp/net-export/ rw, /dev/shm/ r, owner /dev/shm/.org.chromium.Chromium.* rw, # The /proc/ dir is needed to avoid the following error: # traps: freetube[] trap int3 ip:56499eca9d26 sp:7ffcab073060 error:0 in # freetube[56499b8a8000+531e000] @{PROC}/ r, owner @{PROC}/@{pid}/fd/ r, # @{PROC}/@{pid}/fd/ r, @{PROC}/@{pids}/task/ r, deny owner @{PROC}/@{pids}/task/@{tid}/status r, # @{PROC}/@{pids}/task/@{tid}/status r, deny @{PROC}/@{pids}/stat r, deny owner @{PROC}/@{pids}/statm r, deny owner @{PROC}/@{pid}/cmdline r, owner @{PROC}/@{pids}/oom_{,score_}adj r, deny owner @{PROC}/@{pids}/oom_{,score_}adj w, owner @{PROC}/@{pid}/mountinfo r, owner @{PROC}/@{pid}/mounts r, @{PROC}/sys/kernel/yama/ptrace_scope r, deny @{PROC}/vmstat r, @{PROC}/sys/fs/inotify/max_user_watches r, /etc/fstab r, /usr/share/glib-2.0/schemas/gschemas.compiled r, owner @{HOME}/.local/share r, deny @{sys}/devices/virtual/tty/tty0/active r, deny @{sys}/devices/system/cpu/cpufreq/policy[0-9]/cpuinfo_max_freq r, # To remove the following error: # pcilib: Cannot open /sys/bus/pci/devices/0000:03:00.0/irq: Permission denied # The irq file is needed to render pages. deny @{sys}/devices/pci[0-9]*/**/irq r, # Needed? deny owner @{HOME}/.pki/ rw, deny owner @{HOME}/.pki/** rwk, /var/lib/dbus/machine-id r, /etc/machine-id r, owner @{run}/user/[0-9]*/ r, # no new privs /{usr/,}bin/xdg-settings rPx, /{usr/,}bin/xdg-open rCx -> open, # Allowed apps to open /{usr/,}lib/firefox/firefox rPx, # file_inherit owner /dev/tty[0-9]* rw, profile open { include include /{usr/,}bin/xdg-open mr, /{usr/,}bin/{,ba,da}sh rix, /{usr/,}bin/gawk rix, /{usr/,}bin/readlink rix, /{usr/,}bin/basename rix, owner @{HOME}/ r, owner @{run}/user/[0-9]*/ r, # Allowed apps to open /{usr/,}lib/firefox/firefox rPx, # file_inherit owner @{HOME}/.xsession-errors w, } include if exists }