update apparmor profiles

Signed-off-by: Alexandre Pujol <alexandre@pujol.io>
This commit is contained in:
Mikhail Morfikov 2021-12-08 12:59:46 +01:00 committed by Alexandre Pujol
parent 44aca3ba51
commit 3430e3df90
Failed to generate hash of commit
56 changed files with 146 additions and 45 deletions

View file

@ -198,7 +198,7 @@
/sys/class/ r, /sys/class/ r,
# for rbd # for rbd
/etc/ceph/ceph.conf r, /etc/ceph/*.conf r,
# Various functions will need to enumerate /tmp (e.g. ceph), allow the base # Various functions will need to enumerate /tmp (e.g. ceph), allow the base
# dir and a few known functions like samba support. # dir and a few known functions like samba support.

View file

@ -19,6 +19,7 @@ profile okular @{exec_path} {
include <abstractions/freedesktop.org> include <abstractions/freedesktop.org>
include <abstractions/mesa> include <abstractions/mesa>
include <abstractions/user-download-strict> include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/nameservice-strict> include <abstractions/nameservice-strict>
include <abstractions/dri-enumerate> include <abstractions/dri-enumerate>
include <abstractions/kde-icon-cache-write> include <abstractions/kde-icon-cache-write>

View file

@ -67,6 +67,7 @@ profile vlc @{exec_path} {
include <abstractions/nameservice-strict> include <abstractions/nameservice-strict>
include <abstractions/vulkan> include <abstractions/vulkan>
include <abstractions/user-download-strict> include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/ssl_certs> include <abstractions/ssl_certs>
include <abstractions/devices-usb> include <abstractions/devices-usb>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>

View file

@ -15,8 +15,13 @@ profile apt-show-versions @{exec_path} {
@{exec_path} r, @{exec_path} r,
/{usr/,}bin/perl r, /{usr/,}bin/perl r,
/{usr/,}bin/{,ba,da}sh rix,
/usr/bin/dpkg rPx -> child-dpkg, /{usr/,}bin/dpkg rPx -> child-dpkg,
/{usr/,}bin/apt-get rPx,
# apt-helper gets "no new privs" so "rix" it
/{usr/,}lib/apt/apt-helper rix,
owner /var/cache/apt-show-versions/{a,i}packages-multiarch rw, owner /var/cache/apt-show-versions/{a,i}packages-multiarch rw,
owner /var/cache/apt-show-versions/files rw, owner /var/cache/apt-show-versions/files rw,

View file

@ -46,6 +46,7 @@ profile cron-popularity-contest @{exec_path} {
/var/log/ r, /var/log/ r,
/var/log/popularity-contest{,.new} rw, /var/log/popularity-contest{,.new} rw,
/var/log/popularity-contest{,.new}.gpg rw, /var/log/popularity-contest{,.new}.gpg rw,
/var/log/popularity-contest.[0-9]* rw,
# Store last successful http submission timestamp # Store last successful http submission timestamp
/var/lib/popularity-contest/ rw, /var/lib/popularity-contest/ rw,
@ -118,6 +119,8 @@ profile cron-popularity-contest @{exec_path} {
/var/log/popularity-contest.new r, /var/log/popularity-contest.new r,
/var/log/popularity-contest.new.gpg rw, /var/log/popularity-contest.new.gpg rw,
/var/log/popularity-contest.[0-9]* r,
/var/log/popularity-contest.[0-9]*.gpg rw,
owner /tmp/tmp.*/** rwkl -> /tmp/tmp.*/**, owner /tmp/tmp.*/** rwkl -> /tmp/tmp.*/**,
@ -144,6 +147,7 @@ profile cron-popularity-contest @{exec_path} {
/var/log/ r, /var/log/ r,
/var/log/popularity-contest.new.gpg r, /var/log/popularity-contest.new.gpg r,
/var/log/popularity-contest.[0-9]*.gpg r,
# file_inherit # file_inherit
owner /tmp/#[0-9]*[0-9] rw, owner /tmp/#[0-9]*[0-9] rw,

View file

@ -71,11 +71,14 @@ profile dpkg @{exec_path} {
/etc/dpkg/dpkg.cfg r, /etc/dpkg/dpkg.cfg r,
owner @{PROC}/@{pid}/fd/ r, owner @{PROC}/@{pid}/fd/ r,
@{PROC}/sys/kernel/random/boot_id r,
owner /tmp/apt-dpkg-install-*/ r, owner /tmp/apt-dpkg-install-*/ r,
/var/log/dpkg.log w, /var/log/dpkg.log w,
@{run}/systemd/userdb/ r,
# For shell pwd # For shell pwd
/root/ r, /root/ r,
@ -103,9 +106,15 @@ profile dpkg @{exec_path} {
/var/local/** rwl -> /var/local/**, /var/local/** rwl -> /var/local/**,
/var/spool/ r, /var/spool/ r,
/var/spool/** rwl -> /var/spool/**, /var/spool/** rwl -> /var/spool/**,
# Fixme when more transitions will be available (#FIXME#)
/var/www/ r,
/var/www/** rwl,
# To create log and cache dirs # To create log and cache dirs
/var/log/**/ rw, /var/log/**/ rw,
/var/cache/**/ rw, /var/cache/**/ rw,
# To create dirs under var
/var/*.dpkg-new/ rw,
/var/*/ rw,
# file_inherit # file_inherit
owner /dev/tty[0-9]* rw, owner /dev/tty[0-9]* rw,

View file

@ -14,6 +14,9 @@ profile dpkg-deb @{exec_path} {
#capability sys_tty_config, #capability sys_tty_config,
# For "mk-build-deps -i"
capability dac_override,
@{exec_path} mr, @{exec_path} mr,
/{usr/,}bin/tar rix, /{usr/,}bin/tar rix,

View file

@ -11,6 +11,9 @@ profile dpkg-genbuildinfo @{exec_path} flags=(complain) {
include <abstractions/base> include <abstractions/base>
include <abstractions/perl> include <abstractions/perl>
# For "mk-build-deps -i"
capability dac_override,
@{exec_path} r, @{exec_path} r,
/{usr/,}bin/perl r, /{usr/,}bin/perl r,

View file

@ -16,7 +16,7 @@ profile dpkg-trigger @{exec_path} {
/var/lib/dpkg/triggers/Lock rwk, /var/lib/dpkg/triggers/Lock rwk,
/var/lib/dpkg/triggers/ r, /var/lib/dpkg/triggers/ r,
/var/lib/dpkg/triggers/Unincorp{,.new} rw, /var/lib/dpkg/triggers/* rw,
include if exists <local/dpkg-trigger> include if exists <local/dpkg-trigger>
} }

View file

@ -9,6 +9,8 @@ include <tunables/global>
@{exec_path} = /{usr/,}bin/obex-folder-listing @{exec_path} = /{usr/,}bin/obex-folder-listing
profile obex-folder-listing @{exec_path} { profile obex-folder-listing @{exec_path} {
include <abstractions/base> include <abstractions/base>
include <abstractions/private-files-strict>
include <abstractions/user-download-strict>
@{exec_path} mr, @{exec_path} mr,

View file

@ -32,6 +32,8 @@ profile gvfs-udisks2-volume-monitor @{exec_path} {
owner @{run}/user/@{uid}/dconf/ w, owner @{run}/user/@{uid}/dconf/ w,
owner @{run}/user/@{uid}/dconf/user rw, owner @{run}/user/@{uid}/dconf/user rw,
@{run}/systemd/sessions/[0-9]* r,
/etc/fstab r, /etc/fstab r,
# Mount points # Mount points

View file

@ -11,8 +11,10 @@ include <tunables/global>
@{exec_path} += @{libexec}/gvfsd-mtp @{exec_path} += @{libexec}/gvfsd-mtp
profile gvfsd-mtp @{exec_path} { profile gvfsd-mtp @{exec_path} {
include <abstractions/base> include <abstractions/base>
include <abstractions/freedesktop.org>
include <abstractions/devices-usb> include <abstractions/devices-usb>
include <abstractions/freedesktop.org>
include <abstractions/private-files-strict>
include <abstractions/user-download-strict>
network netlink raw, network netlink raw,

View file

@ -1,6 +1,6 @@
# apparmor.d - Full set of apparmor profiles # apparmor.d - Full set of apparmor profiles
# Copyright (C) 2021 Mikhail Morfikov # Copyright (C) 2021 Mikhail Morfikov
# 2021 Alexandre Pujol <alexandre@pujol.io> # Copyright (C) 2021 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
abi <abi/3.0>, abi <abi/3.0>,
@ -28,7 +28,7 @@ profile ssh @{exec_path} {
owner @{HOME}/@{XDG_SSH_DIR}/ r, owner @{HOME}/@{XDG_SSH_DIR}/ r,
owner @{HOME}/@{XDG_SSH_DIR}/config r, owner @{HOME}/@{XDG_SSH_DIR}/config r,
owner @{HOME}/@{XDG_SSH_DIR}/known_hosts rw, owner @{HOME}/@{XDG_SSH_DIR}/known_hosts{,.*} rwl,
owner @{HOME}/@{XDG_SSH_DIR}/*_*{,.pub} r, owner @{HOME}/@{XDG_SSH_DIR}/*_*{,.pub} r,
owner @{HOME}/@{XDG_PROJECTS_DIR}/**/ssh/{,*} r, owner @{HOME}/@{XDG_PROJECTS_DIR}/**/ssh/{,*} r,
owner @{HOME}/@{XDG_PROJECTS_DIR}/**/config r, owner @{HOME}/@{XDG_PROJECTS_DIR}/**/config r,

View file

@ -30,4 +30,6 @@ profile systemd-hostnamed @{exec_path} {
/etc/hostname rw, /etc/hostname rw,
/etc/.#hostname* rw, /etc/.#hostname* rw,
@{run}/udev/data/+dmi:id r,
} }

View file

@ -49,16 +49,11 @@ profile adduser @{exec_path} {
/etc/adduser.conf r, /etc/adduser.conf r,
# To create user dirs # To create user dirs and copy files from /etc/skel/ to them
@{HOME}/ rw, @{HOME}/ rw,
# To copy files from /etc/skel/ to user dirs
@{HOME}/.* w, @{HOME}/.* w,
/var/lib/*/{,*} rw,
/etc/skel/{,.*} r, /etc/skel/{,.*} r,
# What's this for? (#FIXME#)
/var/lib/lightdm/{,*} w,
/var/lib/sddm/{,*} w,
include if exists <local/adduser> include if exists <local/adduser>
} }

View file

@ -10,15 +10,20 @@ include <tunables/global>
profile amixer @{exec_path} { profile amixer @{exec_path} {
include <abstractions/base> include <abstractions/base>
include <abstractions/audio> include <abstractions/audio>
include <abstractions/nameservice-strict>
@{exec_path} mr, @{exec_path} mr,
/usr/share/pipewire/client.conf r,
/var/lib/dbus/machine-id r, /var/lib/dbus/machine-id r,
/etc/machine-id r, /etc/machine-id r,
owner @{HOME}/.Xauthority r, owner @{HOME}/.Xauthority r,
owner @{user_config_dirs}/pulse/ r, owner @{HOME}/.config/pulse/ r,
owner @{PROC}/@{pid}/task/@{tid}/comm rw,
# file_inherit # file_inherit
owner /dev/tty[0-9]* rw, owner /dev/tty[0-9]* rw,

View file

@ -18,7 +18,7 @@ profile badblocks @{exec_path} {
@{PROC}/swaps r, @{PROC}/swaps r,
# A place for a list of already existing known bad blocks # A place for a list of already existing known bad blocks
@{HOME}/** rwk, @{HOME}/* rwk,
@{MOUNTS}/*/** rwk, @{MOUNTS}/*/** rwk,
include if exists <local/badblocks> include if exists <local/badblocks>

View file

@ -1,6 +1,6 @@
# apparmor.d - Full set of apparmor profiles # apparmor.d - Full set of apparmor profiles
# Copyright (C) 2019-2021 Mikhail Morfikov # Copyright (C) 2019-2021 Mikhail Morfikov
# 2021 Alexandre Pujol <alexandre@pujol.io> # Copyright (C) 2021 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
abi <abi/3.0>, abi <abi/3.0>,
@ -30,8 +30,10 @@ profile blkid @{exec_path} {
@{PROC}/partitions r, @{PROC}/partitions r,
# Image files # Image files
@{HOME}/** r, @{HOME}/**.{iso,img,bin,mdf,nrg} r,
@{MOUNTS}/*/** r, @{MOUNTS}/*/**.{iso,img,bin,mdf,nrg} r,
@{HOME}/**.{ISO,IMG,BIN,MDF,NRG} r,
@{MOUNTS}/*/**.{ISO,IMG,BIN,MDF,NRG} r,
include if exists <local/blkid> include if exists <local/blkid>
} }

View file

@ -18,8 +18,12 @@ profile conky @{exec_path} {
include <abstractions/ssl_certs> include <abstractions/ssl_certs>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>
# To get the external IP address
# For samba share mounts
network inet dgram, network inet dgram,
network inet6 dgram, network inet6 dgram,
network inet stream,
network inet6 stream,
# For dig # For dig
#network inet stream, #network inet stream,

View file

@ -9,6 +9,7 @@ include <tunables/global>
@{exec_path} = /{usr/,}bin/df @{exec_path} = /{usr/,}bin/df
profile df @{exec_path} { profile df @{exec_path} {
include <abstractions/base> include <abstractions/base>
include <abstractions/consoles>
capability dac_read_search, capability dac_read_search,

View file

@ -9,6 +9,7 @@ include <tunables/global>
@{exec_path} = /{usr/,}bin/dfc @{exec_path} = /{usr/,}bin/dfc
profile dfc @{exec_path} { profile dfc @{exec_path} {
include <abstractions/base> include <abstractions/base>
include <abstractions/consoles>
@{exec_path} mr, @{exec_path} mr,

View file

@ -18,8 +18,10 @@ profile dumpe2fs @{exec_path} {
owner @{run}/blkid/blkid.tab.old rwl -> @{run}/blkid/blkid.tab, owner @{run}/blkid/blkid.tab.old rwl -> @{run}/blkid/blkid.tab,
# Image files # Image files
@{HOME}/** r, @{HOME}/**.{iso,img,bin,mdf,nrg} r,
@{MOUNTS}/** r, @{MOUNTS}/*/**.{iso,img,bin,mdf,nrg} r,
@{HOME}/**.{ISO,IMG,BIN,MDF,NRG} r,
@{MOUNTS}/*/**.{ISO,IMG,BIN,MDF,NRG} r,
include if exists <local/dumpe2fs> include if exists <local/dumpe2fs>
} }

View file

@ -50,6 +50,7 @@ profile ffmpeg @{exec_path} {
include <abstractions/nameservice-strict> include <abstractions/nameservice-strict>
include <abstractions/ssl_certs> include <abstractions/ssl_certs>
include <abstractions/user-download-strict> include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>
network inet dgram, network inet dgram,

View file

@ -43,6 +43,8 @@ profile ffplay @{exec_path} {
include <abstractions/X> include <abstractions/X>
include <abstractions/freedesktop.org> include <abstractions/freedesktop.org>
include <abstractions/audio> include <abstractions/audio>
include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>
@{exec_path} mr, @{exec_path} mr,

View file

@ -41,6 +41,8 @@ include <tunables/global>
profile ffprobe @{exec_path} { profile ffprobe @{exec_path} {
include <abstractions/base> include <abstractions/base>
include <abstractions/dri-common> include <abstractions/dri-common>
include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>
@{exec_path} mr, @{exec_path} mr,

View file

@ -9,6 +9,8 @@ include <tunables/global>
@{exec_path} = /{usr/,}{s,}bin/hdparm @{exec_path} = /{usr/,}{s,}bin/hdparm
profile hdparm @{exec_path} flags=(complain) { profile hdparm @{exec_path} flags=(complain) {
include <abstractions/base> include <abstractions/base>
include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/disks-read> include <abstractions/disks-read>
# To remove the following errors: # To remove the following errors:
@ -27,8 +29,10 @@ profile hdparm @{exec_path} flags=(complain) {
@{PROC}/devices r, @{PROC}/devices r,
# Image files # Image files
@{HOME}/** r, @{HOME}/**.{iso,img,bin,mdf,nrg} r,
@{MOUNTS}/*/** r, @{MOUNTS}/*/**.{iso,img,bin,mdf,nrg} r,
@{HOME}/**.{ISO,IMG,BIN,MDF,NRG} r,
@{MOUNTS}/*/**.{ISO,IMG,BIN,MDF,NRG} r,
include if exists <local/hdparm> include if exists <local/hdparm>
} }

View file

@ -25,6 +25,7 @@ profile hypnotix @{exec_path} {
include <abstractions/mesa> include <abstractions/mesa>
include <abstractions/nameservice-strict> include <abstractions/nameservice-strict>
include <abstractions/user-download-strict> include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/openssl> include <abstractions/openssl>
include <abstractions/ssl_certs> include <abstractions/ssl_certs>
include <abstractions/python> include <abstractions/python>
@ -85,7 +86,7 @@ profile hypnotix @{exec_path} {
/etc/machine-id r, /etc/machine-id r,
# Silencer # Silencer
/{usr/,}lib/hypnotix/** w, deny /{usr/,}lib/hypnotix/** w,
profile xdg-screensaver { profile xdg-screensaver {

View file

@ -17,12 +17,18 @@ profile jmtpfs @{exec_path} {
/{usr/,}bin/fusermount{,3} rCx -> fusermount, /{usr/,}bin/fusermount{,3} rCx -> fusermount,
owner /tmp/tmp* rw,
owner /tmp/#[0-9]* rw,
# Mount points # Mount points
owner @{HOME}/*/ r, owner @{HOME}/*/ r,
owner @{HOME}/*/*/ r, owner @{HOME}/*/*/ r,
owner @{HOME}/.cache/*/mtp{,-[0-9]*}/ rw,
mount fstype={fuse,fuse.jmtpfs} -> @{HOME}/*/, mount fstype={fuse,fuse.jmtpfs} -> @{HOME}/*/,
mount fstype={fuse,fuse.jmtpfs} -> @{HOME}/*/*/, mount fstype={fuse,fuse.jmtpfs} -> @{HOME}/*/*/,
mount fstype={fuse,fuse.jmtpfs} -> @{HOME}/.cache/*/*/,
/etc/magic r, /etc/magic r,
@ -36,10 +42,14 @@ profile jmtpfs @{exec_path} {
# To mount anything: # To mount anything:
capability sys_admin, capability sys_admin,
#
capability dac_read_search,
/{usr/,}bin/fusermount{,3} mr, /{usr/,}bin/fusermount{,3} mr,
mount fstype={fuse,fuse.jmtpfs} -> @{HOME}/*/, mount fstype={fuse,fuse.jmtpfs} -> @{HOME}/*/,
mount fstype={fuse,fuse.jmtpfs} -> @{HOME}/*/*/, mount fstype={fuse,fuse.jmtpfs} -> @{HOME}/*/*/,
mount fstype={fuse,fuse.jmtpfs} -> @{HOME}/.cache/*/*/,
/etc/fuse.conf r, /etc/fuse.conf r,

View file

@ -1,6 +1,6 @@
# apparmor.d - Full set of apparmor profiles # apparmor.d - Full set of apparmor profiles
# Copyright (C) 2019-2021 Mikhail Morfikov # Copyright (C) 2019-2021 Mikhail Morfikov
# 2021 Alexandre Pujol <alexandre@pujol.io> # Copyright (C) 2021 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
abi <abi/3.0>, abi <abi/3.0>,
@ -48,7 +48,8 @@ profile kmod @{exec_path} flags=(attach_disconnected) {
# Initframs # Initframs
owner /tmp/mkinitcpio.*/{,**} rw, owner /tmp/mkinitcpio.*/{,**} rw,
#owner @{PROC}/@{pid}/fd/1 w, owner @{run}/tmpfiles.d/ w,
owner @{run}/tmpfiles.d/static-nodes.conf w,
# For local kernel build # For local kernel build
owner /tmp/depmod.*/lib/modules/*/ r, owner /tmp/depmod.*/lib/modules/*/ r,

View file

@ -34,6 +34,8 @@ include <tunables/global>
@{exec_path} = /{usr/,}bin/mediainfo @{exec_path} = /{usr/,}bin/mediainfo
profile mediainfo @{exec_path} { profile mediainfo @{exec_path} {
include <abstractions/base> include <abstractions/base>
include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>
@{exec_path} mr, @{exec_path} mr,

View file

@ -39,6 +39,7 @@ profile mediainfo-gui @{exec_path} {
include <abstractions/fontconfig-cache-read> include <abstractions/fontconfig-cache-read>
include <abstractions/freedesktop.org> include <abstractions/freedesktop.org>
include <abstractions/user-download-strict> include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>
@{exec_path} mr, @{exec_path} mr,

View file

@ -41,6 +41,7 @@ include <tunables/global>
profile mkvmerge @{exec_path} { profile mkvmerge @{exec_path} {
include <abstractions/base> include <abstractions/base>
include <abstractions/user-download-strict> include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>
signal (receive) set=(term, kill) peer=mkvtoolnix-gui, signal (receive) set=(term, kill) peer=mkvtoolnix-gui,

View file

@ -53,6 +53,7 @@ profile mkvtoolnix-gui @{exec_path} {
include <abstractions/openssl> include <abstractions/openssl>
include <abstractions/ssl_certs> include <abstractions/ssl_certs>
include <abstractions/user-download-strict> include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>
signal (send) set=(term, kill) peer=mkvmerge, signal (send) set=(term, kill) peer=mkvmerge,

View file

@ -9,7 +9,7 @@ include <tunables/global>
# Video/audio extensions: # Video/audio extensions:
# a52, aac, ac3, mka, flac, mp1, mp2, mp3, mpc, oga, oma, wav, wv, wm, wma, 3g2, 3gp, 3gp2, 3gpp, # a52, aac, ac3, mka, flac, mp1, mp2, mp3, mpc, oga, oma, wav, wv, wm, wma, 3g2, 3gp, 3gp2, 3gpp,
# asf, avi, divx, m1v, m2v, m4v, mkv, mov, mp4, mpa, mpe, mpg, mpeg, mpeg1, mpeg2, mpeg4, ogg, ogm, # asf, avi, divx, m1v, m2v, m4v, mkv, mov, mp4, mpa, mpe, mpg, mpeg, mpeg1, mpeg2, mpeg4, ogg, ogm,
# ogx, ogv, rm, rmvb, webm, wmv, wtv, mp2t # ogx, ogv, rm, rmvb, webm, wmv, wtv, mp2t, flv
@{mpv_ext} = [aA]{52,[aA][cC],[cC]3} @{mpv_ext} = [aA]{52,[aA][cC],[cC]3}
@{mpv_ext} += [mM][kK][aA] @{mpv_ext} += [mM][kK][aA]
@{mpv_ext} += [fF][lL][aA][cC] @{mpv_ext} += [fF][lL][aA][cC]
@ -30,6 +30,7 @@ include <tunables/global>
@{mpv_ext} += [wW][eE][bB][mM] @{mpv_ext} += [wW][eE][bB][mM]
@{mpv_ext} += [wW][mMtT][vV] @{mpv_ext} += [wW][mMtT][vV]
@{mpv_ext} += [mM][pP]2[tT] @{mpv_ext} += [mM][pP]2[tT]
@{mpv_ext} += [fF][lL][vV]
# Image extensions # Image extensions
# bmp, jpg, jpeg, png, gif # bmp, jpg, jpeg, png, gif
@ -66,6 +67,7 @@ profile mpv @{exec_path} {
include <abstractions/nameservice-strict> include <abstractions/nameservice-strict>
include <abstractions/vulkan> include <abstractions/vulkan>
include <abstractions/user-download-strict> include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/openssl> include <abstractions/openssl>
include <abstractions/ssl_certs> include <abstractions/ssl_certs>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>

View file

@ -10,6 +10,8 @@ include <tunables/global>
profile ntfsclone @{exec_path} { profile ntfsclone @{exec_path} {
include <abstractions/base> include <abstractions/base>
include <abstractions/disks-write> include <abstractions/disks-write>
include <abstractions/private-files-strict>
include <abstractions/user-download-strict>
capability sys_admin, capability sys_admin,
@ -18,7 +20,7 @@ profile ntfsclone @{exec_path} {
owner @{PROC}/@{pid}/mounts r, owner @{PROC}/@{pid}/mounts r,
# A place for backups # A place for backups
@{HOME}/** rwk, @{HOME}/* rwk,
@{MOUNTS}/*/** rwk, @{MOUNTS}/*/** rwk,
include if exists <local/ntfsclone> include if exists <local/ntfsclone>

View file

@ -77,7 +77,8 @@ profile openbox @{exec_path} {
/etc/xdg/autostart/{,*} r, /etc/xdg/autostart/{,*} r,
# Silencer # Silencer
/{usr/,}lib/python3/** w, deny /{usr/,}lib/python3/** w,
deny owner @{HOME}/.local/lib/python*/site-packages/ r,
# file_inherit # file_inherit
owner @{HOME}/.xsession-errors w, owner @{HOME}/.xsession-errors w,

View file

@ -55,6 +55,7 @@ profile popularity-contest @{exec_path} {
# file_inherit # file_inherit
/tmp/#[0-9]*[0-9] rw, /tmp/#[0-9]*[0-9] rw,
/var/log/popularity-contest.[0-9]* w,
include if exists <local/popularity-contest> include if exists <local/popularity-contest>
} }

View file

@ -18,6 +18,7 @@ profile qbittorrent @{exec_path} {
include <abstractions/fontconfig-cache-read> include <abstractions/fontconfig-cache-read>
include <abstractions/freedesktop.org> include <abstractions/freedesktop.org>
include <abstractions/user-download-strict> include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/qt5-compose-cache-write> include <abstractions/qt5-compose-cache-write>
include <abstractions/qt5-settings-write> include <abstractions/qt5-settings-write>
include <abstractions/wayland> include <abstractions/wayland>

View file

@ -51,6 +51,7 @@ profile qnapi @{exec_path} {
include <abstractions/qt5-compose-cache-write> include <abstractions/qt5-compose-cache-write>
include <abstractions/nameservice-strict> include <abstractions/nameservice-strict>
include <abstractions/user-download-strict> include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>
# Some apps can use qnapi to automate downloading of subtitles. When a user wants to abort the # Some apps can use qnapi to automate downloading of subtitles. When a user wants to abort the

View file

@ -22,6 +22,7 @@ profile qpdfview @{exec_path} {
include <abstractions/freedesktop.org> include <abstractions/freedesktop.org>
include <abstractions/mesa> include <abstractions/mesa>
include <abstractions/user-download-strict> include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/nameservice-strict> include <abstractions/nameservice-strict>
include <abstractions/dri-enumerate> include <abstractions/dri-enumerate>
include <abstractions/qt5-settings-write> include <abstractions/qt5-settings-write>

View file

@ -36,5 +36,8 @@ profile redshift @{exec_path} {
owner @{HOME}/.Xauthority r, owner @{HOME}/.Xauthority r,
owner /tmp/xauth-[0-9]*-_[0-9] r, owner /tmp/xauth-[0-9]*-_[0-9] r,
# file_inherit
owner /dev/tty[0-9]* rw,
include if exists <local/redshift> include if exists <local/redshift>
} }

View file

@ -48,12 +48,14 @@ profile reprepro @{exec_path} {
# Dirs containing .deb files # Dirs containing .deb files
owner @{REPO_DIR}/*.deb r, owner @{REPO_DIR}/*.deb r,
/var/cache/apt/archives/*.deb r,
# For package building # For package building
owner @{user_build_dirs}/pbuilder/result/*.{dsc,changes} r, owner @{user_build_dirs}/pbuilder/result/*.{dsc,changes} r,
owner @{user_build_dirs}/pbuilder/result/*.deb r, owner @{user_build_dirs}/pbuilder/result/*.deb r,
owner @{user_build_dirs}/pbuilder/result/*.tar.* r, owner @{user_build_dirs}/pbuilder/result/*.tar.* r,
profile gpg { profile gpg {
include <abstractions/base> include <abstractions/base>

View file

@ -69,6 +69,7 @@ profile smplayer @{exec_path} {
include <abstractions/dri-enumerate> include <abstractions/dri-enumerate>
include <abstractions/nameservice-strict> include <abstractions/nameservice-strict>
include <abstractions/user-download-strict> include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/openssl> include <abstractions/openssl>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>

View file

@ -11,6 +11,8 @@ profile tune2fs @{exec_path} {
include <abstractions/base> include <abstractions/base>
include <abstractions/disks-write> include <abstractions/disks-write>
include <abstractions/nameservice-strict> include <abstractions/nameservice-strict>
include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
network inet stream, network inet stream,
network inet6 stream, network inet6 stream,
@ -26,8 +28,10 @@ profile tune2fs @{exec_path} {
owner @{run}/blkid/blkid.tab.old rwl -> @{run}/blkid/blkid.tab, owner @{run}/blkid/blkid.tab.old rwl -> @{run}/blkid/blkid.tab,
# Image files # Image files
@{HOME}/** rw, @{HOME}/**.{iso,img,bin,mdf,nrg} rw,
@{MOUNTS}/*/** rw, @{MOUNTS}/*/**.{iso,img,bin,mdf,nrg} rw,
@{HOME}/**.{ISO,IMG,BIN,MDF,NRG} rw,
@{MOUNTS}/*/**.{ISO,IMG,BIN,MDF,NRG} rw,
include if exists <local/tune2fs> include if exists <local/tune2fs>
} }

View file

@ -55,10 +55,9 @@ profile ucf @{exec_path} flags=(complain) {
# For md5sum # For md5sum
/etc/** r, /etc/** r,
/usr/share/*/conffiles/* r, /usr/share/** r,
@{run}/** r, @{run}/** r,
# For writing new config files # For writing new config files
/etc/** rw, /etc/** rw,

View file

@ -33,6 +33,7 @@ profile umount @{exec_path} flags=(complain) {
@{HOME}/ r, @{HOME}/ r,
@{HOME}/*/ r, @{HOME}/*/ r,
@{HOME}/*/*/ r, @{HOME}/*/*/ r,
@{HOME}/.cache/*/*/ r,
@{MOUNTS}/*/ r, @{MOUNTS}/*/ r,
@{MOUNTS}/*/*/ r, @{MOUNTS}/*/*/ r,

View file

@ -38,6 +38,9 @@ profile uscan @{exec_path} {
# To run custom maintainer scripts # To run custom maintainer scripts
owner @{user_build_dirs}/**/debian/* rPUx, owner @{user_build_dirs}/**/debian/* rPUx,
/usr/share/*/debian/ r,
/usr/share/*/debian/changelog r,
/{usr/,}bin/gpg rCx -> gpg, /{usr/,}bin/gpg rCx -> gpg,
/{usr/,}bin/gpgv rCx -> gpg, /{usr/,}bin/gpgv rCx -> gpg,
@ -49,7 +52,6 @@ profile uscan @{exec_path} {
# For package building # For package building
owner @{user_build_dirs}/** rwkl -> @{user_build_dirs}/**, owner @{user_build_dirs}/** rwkl -> @{user_build_dirs}/**,
# For GPG keys # For GPG keys
owner /tmp/*/ rw, owner /tmp/*/ rw,
owner /tmp/*/trustedkeys.gpg w, owner /tmp/*/trustedkeys.gpg w,

View file

@ -63,11 +63,10 @@ profile useradd @{exec_path} {
/var/log/faillog rw, /var/log/faillog rw,
/var/log/lastlog rw, /var/log/lastlog rw,
# To create user dirs # To create user dirs and copy files from /etc/skel/ to them
@{HOME}/ rw, @{HOME}/ rw,
# To copy files from /etc/skel/ to user dirs
@{HOME}/.* w, @{HOME}/.* w,
/var/lib/*/{,*} rw,
/etc/skel/{,.*} r, /etc/skel/{,.*} r,

View file

@ -55,11 +55,10 @@ profile userdel @{exec_path} flags=(attach_disconnected) {
/etc/.pwd.lock rwk, /etc/.pwd.lock rwk,
# To remove user home files # To remove user home files
@{HOME}/ rw, @{HOME}/{,**} rw,
@{HOME}/** w, /var/ r,
/var/lib/ r,
# To remove user mail /var/lib/*/{,**} rw,
/var/mail/* w,
include if exists <local/userdel> include if exists <local/userdel>
} }

View file

@ -59,7 +59,9 @@ profile usermod @{exec_path} flags=(attach_disconnected) {
# To create and move user dirs # To create and move user dirs
@{HOME}/{,**} rw, @{HOME}/{,**} rw,
/var/{,**} rw, /var/ r,
/var/lib/ r,
/var/lib/*/{,**} rw,
include if exists <local/usermod> include if exists <local/usermod>
} }

View file

@ -45,12 +45,12 @@ profile vidcutter @{exec_path} {
include <abstractions/qt5-compose-cache-write> include <abstractions/qt5-compose-cache-write>
include <abstractions/qt5-shader-cache> include <abstractions/qt5-shader-cache>
include <abstractions/user-download-strict> include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/audio> include <abstractions/audio>
include <abstractions/nameservice-strict> include <abstractions/nameservice-strict>
include <abstractions/python> include <abstractions/python>
include <abstractions/openssl> include <abstractions/openssl>
include <abstractions/ssl_certs> include <abstractions/ssl_certs>
include <abstractions/deny-dconf>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>
@{exec_path} r, @{exec_path} r,
@ -92,6 +92,10 @@ profile vidcutter @{exec_path} {
owner @{user_cache_dirs}/qtshadercache-*-little_endian-*/#[0-9]*[0-9] rw, owner @{user_cache_dirs}/qtshadercache-*-little_endian-*/#[0-9]*[0-9] rw,
owner @{user_cache_dirs}/qtshadercache-*-little_endian-*/[0-9a-f]* rwl -> @{user_cache_dirs}/qtshadercache-*-little_endian-*/#[0-9]*[0-9], owner @{user_cache_dirs}/qtshadercache-*-little_endian-*/[0-9a-f]* rwl -> @{user_cache_dirs}/qtshadercache-*-little_endian-*/#[0-9]*[0-9],
include <abstractions/dconf>
owner @{run}/user/@{uid}/dconf/ rw,
owner @{run}/user/@{uid}/dconf/user rw,
owner @{user_config_dirs}/qt5ct/{,**} r, owner @{user_config_dirs}/qt5ct/{,**} r,
/usr/share/qt5ct/** r, /usr/share/qt5ct/** r,

View file

@ -63,6 +63,8 @@ profile vnstat @{exec_path} {
deny @{PROC}/loadavg r, deny @{PROC}/loadavg r,
deny @{sys}/devices/**/hwmon/**/temp*_input r, deny @{sys}/devices/**/hwmon/**/temp*_input r,
owner /dev/tty[0-9]* rw, owner /dev/tty[0-9]* rw,
deny network inet dgram,
deny network inet6 dgram,
include if exists <local/vnstat> include if exists <local/vnstat>
} }

View file

@ -21,6 +21,7 @@ profile wireshark @{exec_path} {
include <abstractions/fontconfig-cache-read> include <abstractions/fontconfig-cache-read>
include <abstractions/gtk> include <abstractions/gtk>
include <abstractions/user-download-strict> include <abstractions/user-download-strict>
include <abstractions/private-files-strict>
include <abstractions/dri-enumerate> include <abstractions/dri-enumerate>
include <abstractions/mesa> include <abstractions/mesa>
include <abstractions/qt5-compose-cache-write> include <abstractions/qt5-compose-cache-write>
@ -84,7 +85,6 @@ profile wireshark @{exec_path} {
# file_inherit # file_inherit
owner /dev/tty[0-9]* rw, owner /dev/tty[0-9]* rw,
owner @{HOME}/.xsession-errors w,
profile open { profile open {

View file

@ -14,6 +14,8 @@ profile xrandr @{exec_path} {
owner @{HOME}/.Xauthority r, owner @{HOME}/.Xauthority r,
/usr/share/X11/XErrorDB r,
# file_inherit # file_inherit
owner /dev/tty[0-9]* rw, owner /dev/tty[0-9]* rw,

View file

@ -51,6 +51,7 @@ profile youtube-dl @{exec_path} {
include <abstractions/nameservice-strict> include <abstractions/nameservice-strict>
include <abstractions/openssl> include <abstractions/openssl>
include <abstractions/ssl_certs> include <abstractions/ssl_certs>
include <abstractions/user-download-strict>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>
signal (receive) set=(term, kill), signal (receive) set=(term, kill),

View file

@ -45,6 +45,7 @@ profile ytdl @{exec_path} {
include <abstractions/nameservice-strict> include <abstractions/nameservice-strict>
include <abstractions/openssl> include <abstractions/openssl>
include <abstractions/ssl_certs> include <abstractions/ssl_certs>
include <abstractions/user-download-strict>
include <abstractions/deny-root-dir-access> include <abstractions/deny-root-dir-access>
signal (receive) set=(term, kill), signal (receive) set=(term, kill),