firejail crasht man (unter apparmor und zsh) (Gelöst)

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
MachtLinuxBesser
Beiträge: 7
Registriert: 01.11.2020 22:36:36
Lizenz eigener Beiträge: MIT Lizenz

firejail crasht man (unter apparmor und zsh) (Gelöst)

Beitrag von MachtLinuxBesser » 01.11.2020 23:09:23

Das Problem trat auf, nachdem ich firejail auf Debian Buster mit einige wenigen Paketen aus Testing aktivierte. Ich verwende die zsh, aber die gleiche Fehlermeldung kommt auch, wenn ich auf die bash zurück gehe. Ich habe aber noch nicht alle möglichen Permutationen durch probiert.

man less egibt nun

Code: Alles auswählen

Error clone: main.c:2514 main: Operation not permitted
man: Befehl mit Exit-Status 1 beendet: sed -e '/^[[:space:]]*$/{ N; /^[[:space:]]*\n[[:space:]]*$/D; }' | LESS=-ix8RmPm Manual page less(1) ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)$PM Manual page less(1) ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)$ MAN_PN=less(1) less
Andere manpages bringen den gleichen Fehler.
sudo man less zeigt die Manpage einwandfrei an. Ein Rechteproblem liegt m.E. nahe.

journalctl zeigt dann:

Code: Alles auswählen

Nov 01 22:42:12 +++r audit[15938]: AVC apparmor="DENIED" operation="ptrace" profile="/usr/bin/man" pid=15938 comm="firejail" requested_mask="read" denied_mask="read" peer="unconfined"
Nov 01 22:42:12 +++ kernel: audit: type=1400 audit(1604266932.539:32): apparmor="DENIED" operation="ptrace" profile="/usr/bin/man" pid=15938 comm="firejail" requested_mask="read" denied_mask="read" peer="unconfined"
Nov 01 22:42:12 +++ audit[15938]: AVC apparmor="DENIED" operation="capable" profile="/usr/bin/man" pid=15938 comm="firejail" capability=21  capname="sys_admin"
Nov 01 22:42:12 +++ kernel: audit: type=1400 audit(1604266932.547:33): apparmor="DENIED" operation="capable" profile="/usr/bin/man" pid=15938 comm="firejail" capability=21  capname="sys_admin"
Das ist alles, was journalctl diesbezüglich ausspuckt.
Sonst habe ich, bis auf ein paar anzupassende Pfade bei dem ein oder anderen profile, keine Probleme mit firejail festgestellt.

Ein Testuser hat zuerst keine Probleme mit man less. Das ändert sich nachdem firecfg gelaufen ist.
I
ch bin in apparmor noch nicht sehr fit, gleiches gilt für firejail. Auch mit passablem Englisch haben mich Internetrecherchen mit metager.de nicht weitergebracht. Niemand scheint das Problem mit man zu haben. Mit den Lösungsvorschlägen zu anderen apparmor/firejail Problemen, z.B. podman info komme ich nicht weiter.

Wenn's keine bekannte Lösung gibt, kann mir jemand den Weg weisen? Ich arbeite sowieso mehr mit dem Terminal (seit einigen Wochen mit zsh statt mit bash) als mit GUIs.

Bitte nur solche Vorschläge, die das Sicherheitslevel nicht runtersetzen. Das Abschalten von apparmor ist also nicht die Option der Wahl.
Zuletzt geändert von MachtLinuxBesser am 05.11.2020 16:34:18, insgesamt 2-mal geändert.

fossonly
Beiträge: 23
Registriert: 10.06.2020 10:40:38

Re: firejail crasht man (unter apparmor und zsh)

Beitrag von fossonly » 02.11.2020 05:58:10

Hast Du die zugrundeliegende Konfiguration von "firecfg" verändert? Denn regulär sind hier sowohl "man" als auch "less" ausgeklammert aufgrund von Inkompatibilitäten, weshalb es deine Probleme an sich nicht geben dürfte. Auch AppArmor ist hier nicht die Ursache. Welche Version von Firejail kommt bei Dir zum Einsatz? Des weiteren ist deutlich davon abzuraten, ein Debian-Stable mit Paketen aus anderen Repositories zu füttern. Entweder ausschließlich die Backports nutzen, oder alternativ Lösungen wie Flatpak.

MachtLinuxBesser
Beiträge: 7
Registriert: 01.11.2020 22:36:36
Lizenz eigener Beiträge: MIT Lizenz

Re: firejail crasht man (unter apparmor und zsh)

Beitrag von MachtLinuxBesser » 02.11.2020 11:46:28

An den Standardeinstellungen in /etc/firejail habe ich, bis auf den Testnutzer in firejail.users, nichts geändert. Dort gibt es kein profile für man.
Unter .config/firejail habe ich zwei profile. Eines für mpv und eines für vlc. Ich könnte sonst die Videos meiner Kamera nicht ansehen, ohne sie in ein freigegebenes Verzeichnis zu verschieben.

Die Version: firejail/stable,stable,now 0.9.58.2-2+deb10u1 amd64 [installiert]

Ich weiss, dass die Verwendung einzelner Pakete aus anderen Zweigen risikoreich ist. Deswegen habe ich das auch nur für den Kernel und die linux-headers und ein oder zwei ausgewählte Programme verwendet. Inzwischen ist testing in apt auch wieder abgeschaltet.

apt list | grep installiert | grep testing zeigt auch keine Pakete an.

MachtLinuxBesser
Beiträge: 7
Registriert: 01.11.2020 22:36:36
Lizenz eigener Beiträge: MIT Lizenz

Re: firejail crasht man (unter apparmor und zsh)

Beitrag von MachtLinuxBesser » 03.11.2020 08:37:25

Ich habe jetzt gelernt, dass
1. aa-status zwar /usr/bin/man anzeigt, es dafür aber - bei Debian - kein Profil in /etc/apparmor.d/ gibt und eine Standardeinstellung vewrendet wird. extra-profile müssen mit

Code: Alles auswählen

apt install apparmor-profiles apparmor-profiles-extra
installiert werden. Anschließend das man-profil nach /etc/firejail kopieren:

Code: Alles auswählen

cp /usr/share/apparmor/extra-profiles/usr.bin.man /etc/apparmor.d/
2. das aa-complain nicht in den Paketquellen von Debian 10 Buster stable enthalten ist bzw. Python-Abhängigkeiten die Installation verhindern. Statt einem aa-complain /usr/bin/man wird ein Neustart benötigt.

3. Danach ist die Fehlermeldung bzgl. main.c weg, statt dessen kommt diese:

Code: Alles auswählen

% man less
man: Handbuchpfad-Konfigurationsdatei /etc/manpath.config kann nicht geöffnet werden
manpath.config ist

Code: Alles auswählen

8,0K -rw-r--r--  1 root root   5,1K Feb 10  2019 manpath.config
Das sieht für mich zunächst ok aus.
journalctl -f zeig jetzt nach "man less" nur noch eine Zeile an:

Code: Alles auswählen

Nov 03 08:24:38 +++ kernel: audit: type=1400 audit(1604388278.986:48): apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/etc/manpath.config" pid=13092 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Die hier installierte usr.bin.man ist von 2005 resp. 2014 und sieht so aus:

Code: Alles auswählen

# Last Modified: Mon Dec  1 22:15:18 2014

# ------------------------------------------------------------------
#
#    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.
#
# ------------------------------------------------------------------
# vim:syntax=apparmor
#

#include <tunables/global>

/usr/bin/man {
  #include <abstractions/base>
  #include <abstractions/nameservice>

  capability setgid,
  capability setuid,

  /usr/bin/man r,
  /usr/lib/man-db/man Px,

}
Ich werde unter "/usr/bin/man r," ein "/etc/manpath.config r," einfügen, neu starten und anschliessend berichten.
Zuletzt geändert von MachtLinuxBesser am 03.11.2020 09:26:43, insgesamt 1-mal geändert.

MachtLinuxBesser
Beiträge: 7
Registriert: 01.11.2020 22:36:36
Lizenz eigener Beiträge: MIT Lizenz

Re: firejail crasht man (unter apparmor und zsh)

Beitrag von MachtLinuxBesser » 03.11.2020 09:26:15

Nun bezieht sich die Fehlermeldung auf die Handbuchseiten:

Code: Alles auswählen

man less
Kein Handbucheintrag für less vorhanden
Siehe auch »man 7 undocumented« für Hilfe, wenn Handbuchseiten nicht verfügbar sind.
journalct zeigt die Pfade auch alle an

Code: Alles auswählen

Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/var/cache/man/oldlocal/index.db" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=6
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/var/cache/man/index.db" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=6
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ kernel: kauditd_printk_skb: 55 callbacks suppressed
Nov 03 09:16:55 +++ kernel: audit: type=1400 audit(1604391415.601:112): apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ kernel: audit: type=1400 audit(1604391415.601:113): apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ kernel: audit: type=1400 audit(1604391415.601:114): apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ kernel: audit: type=1400 audit(1604391415.601:115): apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ kernel: audit: type=1400 audit(1604391415.601:116): apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ kernel: audit: type=1400 audit(1604391415.601:117): apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/var/cache/man/oldlocal/index.db" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=6
Nov 03 09:16:55 +++ kernel: audit: type=1400 audit(1604391415.601:118): apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ kernel: audit: type=1400 audit(1604391415.601:119): apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ kernel: audit: type=1400 audit(1604391415.601:120): apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/var/cache/man/index.db" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=6
Nov 03 09:16:55 +++ kernel: audit: type=1400 audit(1604391415.601:121): apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:16:55 +++ audit[3639]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/" pid=3639 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Sieht so aus als müssten noch ein paar Pfade für read-access in usr.bin.man eingetragen werden.
Die journalctl-Ausgabe nach journalctl-man kopieren und etwas shell und Linux-Magie anwenden:

Code: Alles auswählen

cat journalctl-man | cut -d\  -f10 | sort | uniq
läßt bei mir die folgenden Pfade übrig:

Code: Alles auswählen

name="/usr/local/share/man/"
name="/usr/share/man/"
name="/var/cache/man/index.db"
name="/var/cache/man/oldlocal/index.db"
Meine /etc/apparmor.d/usr.bin.man sieht dann so aus:

Code: Alles auswählen

# Last Modified: 20201103 09:39 MEZ
# read-access auf /etc/manpath.config und Ordner mit Handbuchseiten. 

# ------------------------------------------------------------------
#
#    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.
#
# ------------------------------------------------------------------
# vim:syntax=apparmor
#

#include <tunables/global>

/usr/bin/man {
  #include <abstractions/base>
  #include <abstractions/nameservice>

  capability setgid,
  capability setuid,

  /usr/bin/man r,
  /etc/manpath.config r,
  /usr/lib/man-db/man Px,

# read-access für die  Manpages/Handbuchseiten
	/usr/local/share/man/ r,
	/usr/share/man/ r,
	/var/cache/man/index.db r,
	/var/cache/man/oldlocal/index.db r,


}

MachtLinuxBesser
Beiträge: 7
Registriert: 01.11.2020 22:36:36
Lizenz eigener Beiträge: MIT Lizenz

Lösung: firejail crasht man (unter apparmor und zsh)

Beitrag von MachtLinuxBesser » 03.11.2020 10:35:15

Nach einem weiteren Neustart zeigt sich bei man less die gleiche Fehlermeldung. journalctl -f zeigt jedoch

Code: Alles auswählen

Nov 03 09:54:02 +++ audit[3080]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/de/" pid=3080 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:54:02 +++ audit[3080]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/man7/" pid=3080 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:54:02 +++ audit[3080]: AVC apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/man7/" pid=3080 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:54:02 +++ kernel: audit: type=1400 audit(1604393642.544:50): apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/local/share/man/man1/" pid=3080 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:54:02 +++ kernel: audit: type=1400 audit(1604393642.544:51): apparmor="DENIED" operation="file_lock" profile="/usr/bin/man" name="/var/cache/man/oldlocal/index.db" pid=3080 comm="man" requested_mask="k" denied_mask="k" fsuid=1026 ouid=6
Nov 03 09:54:02 +++ kernel: audit: type=1400 audit(1604393642.544:52): apparmor="DENIED" operation="file_lock" profile="/usr/bin/man" name="/var/cache/man/oldlocal/index.db" pid=3080 comm="man" requested_mask="k" denied_mask="k" fsuid=1026 ouid=6
Nov 03 09:54:02 +++ kernel: audit: type=1400 audit(1604393642.544:53): apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/man1/" pid=3080 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Nov 03 09:54:02 +++ kernel: audit: type=1400 audit(1604393642.544:54): apparmor="DENIED" operation="file_lock" profile="/usr/bin/man" name="/var/cache/man/index.db" pid=3080 comm="man" requested_mask="k" denied_mask="k" fsuid=1026 ouid=6
Nov 03 09:54:02 +++ kernel: audit: type=1400 audit(1604393642.544:55): apparmor="DENIED" operation="file_lock" profile="/usr/bin/man" name="/var/cache/man/index.db" pid=3080 comm="man" requested_mask="k" denied_mask="k" fsuid=1026 ouid=6
Nov 03 09:54:02 +++ kernel: audit: type=1400 audit(1604393642.544:56): apparmor="DENIED" operation="open" profile="/usr/bin/man" name="/usr/share/man/de/" pid=3080 comm="man" requested_mask="r" denied_mask="r" fsuid=1026 ouid=0
Obige shell- un dLinux-Magie machen daraus:

Code: Alles auswählen

name="/usr/local/share/man/man7/"
name="/usr/share/man/de/"
name="/usr/share/man/man7/"
Das sieht so aus, als müsste jeder Unterordner in usr.bin.man eingetragen werden. Geht das nicht einfacher?
Lesen hilft weiter, z.B. https://wiki.ubuntuusers.de/AppArmor/.

Danach sieht usr.bin.man so aus:

Code: Alles auswählen

# Last Modified: 20201103 09:39 MEZ
# read-access auf /etc/manpath.config und Ordner mit Handbuchseiten. 

# ------------------------------------------------------------------
#
#    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.
#
# ------------------------------------------------------------------
# vim:syntax=apparmor
#

#include <tunables/global>

/usr/bin/man {
  #include <abstractions/base>
  #include <abstractions/nameservice>

  capability setgid,
  capability setuid,

  /usr/bin/man r,
  /etc/manpath.config r,
  /usr/lib/man-db/man Px,

# read-access für die  Manpages/Handbuchseiten sowie die zugehörigen index.db
	/usr/local/share/man/** r,
	/usr/share/man/** r,
	# Sicherheitsrisiko
	/home/*/.local/man/**
	/var/cache/man/index.db r,
	/var/cache/man/oldlocal/index.db r,
}
find /usr/ -iname man bringt noch ein paar mehr Vorkommen. Aber zunächst will ich prüfen, ob

Code: Alles auswählen

/home/*/.local/man/**
funktioniert. Das kann zum Sicherheitsrisiko auf Maschinen mit mehr als einem Benutzer werden. Ein anderer Nutzer könnte versuchen man über eine speziell designte manpage in seinem .local/man an zu greifen.

Gut, das funktioniert jetzt. Keine Fehlermeldungen mehr in journalctl. /home/*/.local/man scheint auch zu funktionieren. Da ich hier aber nur einen Manpage habe, kommt die nach /usr/local/share/man und die Zeile wird auskommentiert.

Zusammenfassung:

/usr/bin/man bekommt Zugriffsprobleme, wenn apparmor mit Standardeinstellung (kein usr.bin.man in apparmor.d) läuft und firejail installiert und mit firecfg konfiguriert wird.
Die Einrichtung des obigen /etc/apparmor.d/usr.bin.man (Pfadname mit Punkten statt Schrägern!) behebt die Zugriffsprobleme in apparmor für die gegebenen Pfade.
Ob dies auch durch ein eigens firejail-profile hätte gelöst werden können, habe ich noch nicht versucht.

Quellen
Vielen Dank an
1. fossonly, der mich mit seinem zweiten Satz zur Problemlösung gebracht hat.
2. Dem Blogger, der darauf hinwies, dass, obwohl aa-status /usr/bin/man anzeigt, nur eine apparmor interne Standardeinstellung verwendet wird. Er wies mir auch den Weg zur Installation eines profiles für /usr/bin/man. Leider taucht sein blog nur unter bestimmten Umständen in metager.de auf. Jetzt gerade nicht, deswegen finde ich leider keinen Namen.

Wünsche

Aktualisierung der apparmor-utils damit die Fehlermeldung

Code: Alles auswählen

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
 apparmor-utils : Hängt ab von: python3-apparmor (= 2.13.2-10) soll aber nicht installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.
einer Installation nicht mehr im Wege steht.

28.03.2021 Nachdem ich firejail noch eine weitere Chance gegeben habe, habe ich mich mal durch die vielen Optionen gearbeitet.
Nach einem upgrade von apparmor (nichts mehr in /etc/apparmor.d) und einer Neuinstallation von firejail funktionierte /usr/bin/man wieder mit den gleichen Problemen nicht.
Nach

Code: Alles auswählen

firejail --apparmor
funktionierte es wieder.

Antworten