For people not (enough) capable of understanding German: For a solution for the behaviour described in the heading of this forum thread refer to the next post in this thread.
---
Betreff dieses Threads auf Deutsch:
Debian 12/KDE + händisch erzeugtes AppArmor-Profil in Version 3.* für LibreWolf: Browser kann nicht gestartet werden
Hi,
nach der Installation der aktuell neuesten LibreWolf-Version 132.0.1-1 zeigte mir die GUI von LibreWolf einen Hinweis zum Inhalt dieses Links an:
https://support.mozilla.org/de/kb/firef ... en-warnungFirefox unter Linux installieren - Sicherheitsfunktionen-Warnung
Also befasse ich mich seit vorgestern zum ersten Mal mit AppArmor.
Unter Manjaro (stabile Version, Paket-Stand aktuell) und Tuxedo OS 4 (basierend auf Ubuntu 24.04.*) laufen die dort jeweils vorhandenen LibreWolf-Installationen bisher fehlerfrei unter Einsatz eines dazugehörigen AppArmor-Profils für LibreWolf.
Unter Manjaro hat die Vorlage für den Inhalt der LibreWolf-Profildatei, wie er auf
https://support.mozilla.org/de/kb/firef ... en-warnung
genannt ist, zuerst nicht funktioniert.
Unter Manjaro musste ich deswegen mit Hilfe des Befehls aa-genprof librewolf händisch eine Profildatei für deren Verwendung durch AppArmor erzeugen. LibreWolf unter Verwendung von AppArmor funktioniert damit. Ich habe allerdings noch nicht diese Profildatei in den "enforce"-Modus umgeschaltet. Dies habe ich auch in Bezug auf die Profildatei für LibreWolf in meiner Tuxedo-OS-4-Installation noch nicht getan.
In meiner Tuxedo-OS-4-Installation funktioniert die Vorlage für den Inhalt der LibreWolf-Profildatei, welcher auf der o. g. Seite des Mozilla-Supports genannt ist.
In meiner Manjaro-Installation ist AppArmor/Abi in Version 3.* installiert.
In meiner Tuxedo-OS-4-Installation befinden sich im Verzeichnis
/etc/apparmor.d/abi/
u. a. die beiden folgenden Dateien:
- 3.0
- 4.0
Das bedeutet sehr offensichtlich, dass die AppArmor-Installation in Tuxedo OS 4 sowohl AppArmor-Profildateien in Version 3.0 als auch 4.0 erfolgreich verarbeiten kann. Deswegen kann AppArmor in Tuxedo OS 4 auch die Vorlage für den Inhalt der LibreWolf-Profildatei, wie er oben im Link des Mozilla-Supports genannt ist, erfolgreich verarbeiten.
Jetzt komme ich zu meinem eigentlichen Anliegen:
Unter Debian 12 ("Bookworm") verhindert das von mir mit Hilfe des Befehls aa-genprof händisch erzeugte AppArmor-Profil für LibreWolf den erfolgreichen Start des dort installierten LibreWolf in der aktuellen Version 132.0.1-1, das heißt:
Nach Klick auf den LibreWolf-Icon in der KDE-Taskleiste erscheint in der Taskleiste für ein paar Sekunden der LibreWolf-Umschalter-Button, verschwindet dann aber, und dann passiert nichts mehr: Der Start von LibreWolf scheitert jedes Mal.
Ohne aktives/vorhandenes AppArmor-Profil für LibreWolf in meiner Debian-12-Installation startet LibreWolf in gewohnter Weise und kann wie gewohnt benutzt werden.
Der Start von LibreWolf aus der Konsole heraus führt zu folgendem Rückgabewert:
Code: Alles auswählen
<normaler Benutzer>@<Hostname>:~$ librewolf
Couldn't load XPCOM.
<normaler Benutzer>@<Hostname>:~$
Code: Alles auswählen
root@HOSTNAME:/var/log/audit# journalctl --system --catalog -f
Nov 11 17:09:30 HOSTNAME audit: PROCTITLE proctitle="/usr/share/librewolf/librewolf"
Nov 11 17:10:22 HOSTNAME audit[1403]: AVC apparmor="DENIED" operation="open" profile="/usr/share/librewolf/librewolf" name="/proc/1403/task/1404/stat" pid=1403 comm="librewolf" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Nov 11 17:10:22 HOSTNAME audit[1403]: SYSCALL arch=c000003e syscall=257 success=no exit=-13 a0=ffffff9c a1=7fe9138fee50 a2=0 a3=0 items=0 ppid=1400 pid=1403 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts2 ses=4 comm="librewolf" exe="/usr/share/librewolf/librewolf" subj=/usr/share/librewolf/librewolf key=(null)
Nov 11 17:10:22 HOSTNAME audit: PROCTITLE proctitle="librewolf"
Nov 11 17:10:22 HOSTNAME audit[1403]: AVC apparmor="DENIED" operation="open" profile="/usr/share/librewolf/librewolf" name="/proc/1403/stat" pid=1403 comm="librewolf" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Nov 11 17:10:22 HOSTNAME audit[1403]: SYSCALL arch=c000003e syscall=257 success=no exit=-13 a0=ffffff9c a1=561124436721 a2=0 a3=0 items=0 ppid=1400 pid=1403 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts2 ses=4 comm="librewolf" exe="/usr/share/librewolf/librewolf" subj=/usr/share/librewolf/librewolf key=(null)
Nov 11 17:10:22 HOSTNAME audit: PROCTITLE proctitle="librewolf"
Nov 11 17:10:22 HOSTNAME audit[1403]: AVC apparmor="DENIED" operation="open" profile="/usr/share/librewolf/librewolf" name="/usr/share/librewolf/dependentlibs.list" pid=1403 comm="librewolf" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Nov 11 17:10:22 HOSTNAME audit[1403]: SYSCALL arch=c000003e syscall=257 success=no exit=-13 a0=ffffff9c a1=7ffea5533440 a2=0 a3=0 items=0 ppid=1400 pid=1403 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts2 ses=4 comm="librewolf" exe="/usr/share/librewolf/librewolf" subj=/usr/share/librewolf/librewolf key=(null)
Nov 11 17:10:22 HOSTNAME audit: PROCTITLE proctitle="librewolf"
[...]
Code: Alles auswählen
# Last Modified: Mon Nov 11 17:01:42 2024
abi <abi/3.0>,
include <tunables/global>
/usr/share/librewolf/librewolf {
include <abstractions/base>
signal send set=term peer=/usr/share/librewolf/librewolf//null-/usr/share/librewolf/librewolf,
/sys/devices/system/cpu/cpu0/cache/index2/size r,
/sys/devices/system/cpu/cpu0/cache/index3/size r,
/sys/devices/system/cpu/cpu0/topology/core_cpus r,
/sys/devices/system/cpu/cpu1/topology/core_cpus r,
/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq r,
/sys/devices/system/cpu/present r,
/usr/share/librewolf/librewolf mr,
owner /home/*/.librewolf/9uqza643.default-default/storage/permanent/ r,
owner /home/*/.librewolf/9uqza643.default-default/storage/temporary/ r,
owner /home/<normaler Benutzer>/.cache/librewolf/9uqza643.default-default/cache2/ r,
owner /home/<normaler Benutzer>/.cache/librewolf/9uqza643.default-default/cache2/doomed/ rw,
owner /home/<normaler Benutzer>/.cache/librewolf/9uqza643.default-default/cache2/entries/ rw,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/ r,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/bounce-tracking-protection.sqlite-journal w,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/datareporting/glean/db/data.safe.bin w,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/datareporting/glean/db/data.safe.tmp rw,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/formhistory.sqlite rwk,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/permissions.sqlite-journal rw,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/places.sqlite w,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/places.sqlite-wal w,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/prefs-1.js rw,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/prefs.js w,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/protections.sqlite-journal w,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/sessionCheckpoints.json w,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/sessionCheckpoints.json.tmp rw,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/storage.sqlite-journal rw,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/storage/default/ r,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/storage/permanent/chrome/idb/1657114595AmcateirvtiSty.sqlite w,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/storage/permanent/chrome/idb/1657114595AmcateirvtiSty.sqlite-wal w,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/webappsstore.sqlite rwk,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/webappsstore.sqlite-wal rw,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/xulstore.json w,
owner /home/<normaler Benutzer>/.librewolf/9uqza643.default-default/xulstore.json.tmp rw,
}
https://support.mozilla.org/en-US/questions/1229392
Aufgrund der dort genannten Informationen habe ich das *.deb-Paket für LibreWolf gelöscht und folgende Verzeichnisse in meinem HOME-Verzeichnis gelöscht:
~/.librewolf
~/.cache/librewolf
Anschließend habe ich die AppArmor-Profildatei für den mittlerweile gelöschten LibreWolf gelöscht und einen Neustart durchgeführt.
Danach habe ich LibreWolf gemäß der Anleitung auf https://librewolf.net/installation/debian/ installiert und LibreWolf konfiguriert auf about:config und anschließend meine Bookmark-Sammlung in LibreWolf importiert, außerdem mehrere typische Aktionen in LibreWolf ausgeführt, die typisch sind für die Anwendung eines Web-Browsers.
Danach einen Neustart durchgeführt + ein neues AppArmor-Profil für LibreWolf erzeugt unter Einsatz des Befehls aa-genprof.
Die neue Profildatei hat jetzt einen ziemlich anderen, sehr kurzen Inhalt:
Code: Alles auswählen
# Last Modified: Mon Nov 11 19:45:07 2024
abi <abi/3.0>,
include <tunables/global>
/usr/share/librewolf/librewolf {
include <abstractions/base>
/sys/devices/system/cpu/cpu1/topology/core_cpus r,
/usr/share/librewolf/librewolf mr,
}
Es erscheint wieder die bereits oben genannte Fehlermeldung in der Konsole:
Code: Alles auswählen
<normaler Benutzer>@<Hostname>:~$ librewolf
Couldn't load XPCOM.
<normaler Benutzer>@<Hostname>:~$
Code: Alles auswählen
root@<Hostname>:/etc/apparmor.d# journalctl --system --catalog -f
[...]
Nov 11 19:55:08 <Hostname> audit[1808]: AVC apparmor="DENIED" operation="open" profile="/usr/share/librewolf/librewolf" name="/proc/1808/task/1809/stat" pid=1808 comm="librewolf" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Nov 11 19:55:08 <Hostname> audit[1808]: SYSCALL arch=c000003e syscall=257 success=no exit=-13 a0=ffffff9c a1=7f3fd7dfee50 a2=0 a3=0 items=0 ppid=1307 pid=1808 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts1 ses=4 comm="librewolf" exe="/usr/share/librewolf/librewolf" subj=/usr/share/librewolf/librewolf key=(null)
Nov 11 19:55:08 <Hostname> audit: PROCTITLE proctitle="librewolf"
Nov 11 19:55:08 <Hostname> audit[1808]: AVC apparmor="DENIED" operation="open" profile="/usr/share/librewolf/librewolf" name="/proc/1808/stat" pid=1808 comm="librewolf" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Nov 11 19:55:08 <Hostname> audit[1808]: SYSCALL arch=c000003e syscall=257 success=no exit=-13 a0=ffffff9c a1=557f4ae04721 a2=0 a3=0 items=0 ppid=1307 pid=1808 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts1 ses=4 comm="librewolf" exe="/usr/share/librewolf/librewolf" subj=/usr/share/librewolf/librewolf key=(null)
Nov 11 19:55:08 <Hostname> audit: PROCTITLE proctitle="librewolf"
Nov 11 19:55:08 <Hostname> audit[1808]: AVC apparmor="DENIED" operation="open" profile="/usr/share/librewolf/librewolf" name="/usr/share/librewolf/dependentlibs.list" pid=1808 comm="librewolf" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Nov 11 19:55:08 <Hostname> audit[1808]: SYSCALL arch=c000003e syscall=257 success=no exit=-13 a0=ffffff9c a1=7ffc218c6290 a2=0 a3=0 items=0 ppid=1307 pid=1808 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts1 ses=4 comm="librewolf" exe="/usr/share/librewolf/librewolf" subj=/usr/share/librewolf/librewolf key=(null)
Nov 11 19:55:08 <Hostname> audit: PROCTITLE proctitle="librewolf"
In AppArmor mich eingearbeitet für die Verwendung in Manjaro, Tuxedo OS 4 und Debian 12 habe ich mich auf der Grundlage von vor allem der beiden folgenden Links:
https://wiki.archlinux.org/title/AppArmor
https://wiki.debian.org/AppArmor/HowToUse
Viele Grüße
prox