Das AppArmor-Profil für Sublime Text hat sich im Praxiseinsatz bewährt, allerdings sind im Laufe der Zeit ein paar Nebenwirkungen aufgetreten: trotz expliziter Genehmigung des Lese- und Schreibzugriffs auf alle im Besitz des Benutzers befindlichen Dateien unterhalb von "/home"
owner /home/** rw,
war es nicht möglich, z.B. die Datei ".bashrc" zu bearbeiten. Dies wurde auch entsprechend im Log protokolliert:
apparmor="DENIED" operation="open" profile="/opt/sublime_text/sublime_text" name="/home/buster/.bashrc" pid=5507 comm="file_read_threa" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Ursache hierfür war das Einbinden der Datei "abstractions/evince"
#include <abstractions/evince>
welche wiederum den Regelsatz um den Inhalt der Datei "abstractions/private-files" erweiterte
#include <abstractions/private-files>
wodurch letztendlich die Regel
deny @{HOME}/.bash* mrk,
im Profil aktiv war. Diese unterbindet den Lesezugriff auf alle Dateien im "Home"-Verzeichnis des Benutzers welche mit ".bash" beginnen, weshalb die spätere Genehmigung ins Leere läuft.
Das aktualisierte Profil sieht wie folgt aus:
# Last Modified: Mon May 11 20:28:54 2020 # 2020-09-29 athul/replaced abstractions/evince #include <tunables/global> /opt/sublime_text/sublime_text { #include <abstractions/X> #include <abstractions/base> #include <abstractions/dbus-session-strict> #include <abstractions/fonts> deny network, /opt/sublime_text/ r, /opt/sublime_text/** r, /opt/sublime_text/plugin_host mrix, /opt/sublime_text/sublime_text mr, /proc/filesystems r, /usr/share/** r, /usr/bin/perl mrix, /usr/bin/sassc mrix, owner /dev/shm/* rwl, owner /run/user/** rw, @{HOME}/** rwk, @{HOME} rw, }
Neben dem Ersetzen von "abstractions/evince" wurde das Profil noch um eine Zugriffsregel für den Perl-Interpreter sowie den Sass CSS-Precompiler erweitert und auf die Variable "@{HOME}" aus "tunables/global" statt der statischen Pfadangabe "/home/..." zurückgegriffen.
Als Best Practice sollte man zur Minimierung von Nebenwirkungen mit Hilfe von "aa-genprof" die Zugriffsrechte lieber dediziert vergeben statt die vorgeschlagenen Includes einzubinden.