dmesg, Berechtigung

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
fischig
Beiträge: 3601
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

dmesg, Berechtigung

Beitrag von fischig » 27.11.2021 09:10:05

Wenn ich recht erinnere, dann konnte „früher“ jeder Benutzer das Kommando dmesg ausführen. Spätestens in bullseye stelle ich fest, dass das nicht mehr geht. Verantwortlich ist die Kern-Konfig: CONFIG_SECURITY_DMESG_RESTRICT=y - richtig? Seit wann ist das so? Ich machte das in meinem Heim-Netz gerne rückgängig. Dazu sehe ich zwei Möglichkeiten. Der etwas umständlichere Weg: Eigenen Kern (benutz' ich sowieso) neu kompilieren. Der einfachere: SETUID für dmesg. Dazu müsste ich wissen, wo im Dateisystem steckt das Kommando. Bei ersten Suchen bin ich nicht fündig geworden

willy4711

Re: dmesg, Berechtigung

Beitrag von willy4711 » 27.11.2021 09:29:39

fischig hat geschrieben: ↑ zum Beitrag ↑
27.11.2021 09:10:05
Dazu müsste ich wissen, wo im Dateisystem steckt das Kommando. Bei ersten Suchen bin ich nicht fündig geworden
:?: :?:

Code: Alles auswählen

ls -al /usr/bin|grep dmesg
-rwxr-xr-x  1 root   root        84440 19. Okt 16:02 dmesg
Solltest du mit systemd arbeiten wäre der einfachere Weg, der Gruppe systemd-journal beizutreten
und mit

Code: Alles auswählen

journalctl -b -k
Gleiches zu erreichen.

fischig
Beiträge: 3601
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: dmesg, Berechtigung

Beitrag von fischig » 27.11.2021 09:37:46

Danke sehr! Das muss ich in /usr/bin übersehen haben. Vielleicht habe ich auch nur in /usr/sbin gesucht.

Kommando zurück! Bei mir (bullseye) steckt dmesg nicht in /usr/bin!

Aha! Fündig geworden. Bei mir steckt dmesg in /bin. Da war doch was, dass mit bullseye Pfade geändert worden sind. :?:

tobo
Beiträge: 1964
Registriert: 10.12.2008 10:51:41

Re: dmesg, Berechtigung

Beitrag von tobo » 27.11.2021 09:54:17

fischig hat geschrieben: ↑ zum Beitrag ↑
27.11.2021 09:37:46
Bei mir steckt dmesg in /bin. Da war doch was, dass mit bullseye Pfade geändert worden sind. :?:
Mag sein, aber nicht der von dmesg.

Wo die ausführbaren Dateien liegen kannst du (je nach Zugriffsberechtigung als user/root) mit which abfragen:

Code: Alles auswählen

#$ which dmesg

willy4711

Re: dmesg, Berechtigung

Beitrag von willy4711 » 27.11.2021 10:09:47

Code: Alles auswählen

ls -al / 
[..]
lrwxrwxrwx   1 root root     7 17. Jul 2020  bin -> usr/bin
[...]
und

Code: Alles auswählen

~$ which dmesg
/usr/bin/dmesg

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: dmesg, Berechtigung

Beitrag von MSfree » 27.11.2021 10:25:04

fischig hat geschrieben: ↑ zum Beitrag ↑
27.11.2021 09:10:05
Dazu sehe ich zwei Möglichkeiten. Der etwas umständlichere Weg: Eigenen Kern (benutz' ich sowieso) neu kompilieren. Der einfachere: SETUID für dmesg.
setuid ginge mir dann doch etwas zu weit.

Code: Alles auswählen

setcap cap_syslog=ep /usr/bin/dmesg
entsperrt dmesg für normale Benutzer, ganz ohne eigenen Kernel.

tobo
Beiträge: 1964
Registriert: 10.12.2008 10:51:41

Re: dmesg, Berechtigung

Beitrag von tobo » 27.11.2021 11:31:37

Auch /usr/bin/dmesg? util-linux enpackt dmesg nach /bin/dmesg in buster, bullseye und bookworm:
https://packages.debian.org/buster/amd6 ... x/filelist
https://packages.debian.org/bullseye/am ... x/filelist
https://packages.debian.org/bookworm/am ... x/filelist

Edit: Auf die SymLinks bezogen:
https://wiki.debian.org/UsrMerge

Und was dmesg für den normalen Benutzer angeht, das ist seit mindestens stretch eingeschränkt. Kann man sich entledigen durch z.B.:

Code: Alles auswählen

# printf "kernel.dmesg_restrict=0\n" >> /etc/sysctl.d/local.conf
Zuletzt geändert von tobo am 27.11.2021 18:47:27, insgesamt 2-mal geändert.

MaGe
Beiträge: 1708
Registriert: 01.06.2014 17:12:16

Re: dmesg, Berechtigung

Beitrag von MaGe » 27.11.2021 12:04:45

fischig hat geschrieben: Wenn ich recht erinnere, dann konnte „früher“ jeder Benutzer das Kommando dmesg ausführen
[ sysctl kernel.dmesg_restrict ]

Folgendes aus : In den Linux-Kernel- Dokumenten :

Dieser Schalter zeigt an, ob unprivilegierte Benutzer daran gehindert werden, dmesg(8) zu verwenden, um Nachrichten aus dem Protokollpuffer des Kernels anzuzeigen. Wenn dmesg_restrict auf (0) gesetzt ist, gibt es keine Einschränkungen. Wenn dmesg_restrict auf (1) gesetzt ist, müssen Benutzer CAP_SYSLOG haben, um dmesg(8) verwenden zu können. Die Kernel-Konfigurationsoption CONFIG_SECURITY_DMESG_RESTRICT setzt den Standardwert von dmesg_restrict.

Ich bin alleiniger Nutzer des PCs
bei mir Debian Sid gibt es in /etc die Datei sysctl.conf

Datei sysctl.conf vorher sichern!

Dort habe ich als letzte Zeile

Code: Alles auswählen

 kernel.dmesg_restrict=0 
hinzugefürt, Neustart

privat@Mbox:~$ dmesg | head --lines 1
[ 0.000000] Linux version 5.15.0-1-amd64 (debian-kernel@lists.debian.org) (gcc-11 (Debian 11.2.0-12) 11.2.0, GNU ld (GNU Binutils for Debian) 2.37) #1 SMP Debian 5.15.3-1 (2021-11-18)




gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

fischig
Beiträge: 3601
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: dmesg, Berechtigung

Beitrag von fischig » 28.11.2021 08:01:52

Danke für die vielen Tipps!

Ich habe MSfrees Methode benutzt.

Code: Alles auswählen

CAP_SYSLOG (since Linux 2.6.37)
              * Perform privileged syslog(2) operations.
Kann man sich diese Angabe de rmanpage für capabilities so erklären, dass syslog den Ringpuffer des Kerns liest und

Code: Alles auswählen

setcap cap_syslog=ep /bin/dmesg
jetzt dem Nicht-Root erlaubt, mitzulesen?

Was jetzt genau „ep“ bedeutet, habe ich auch in der manpage zu setcap nicht gefunden.

Gibt es Überlegungen, warum dmesg bei mir unter /bin, bei willy aber unter /usr/bin liegt? Normalerweise installiere ich kein Debian neu, sondern aktualisiere die Version. Ich erinnere mich nicht, hier jemals etwas anderes gemacht zu haben und der Rechner läuft, seit er in meinem Besitz ist (geschätzt 2010-2012), mit Debian.

Benutzeravatar
schorsch_76
Beiträge: 2535
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: dmesg, Berechtigung

Beitrag von schorsch_76 » 28.11.2021 08:24:08

Das ist der sog. usr merge. Neue Installationen haben das gleich so.

Debianusrmerge

https://wiki.debian.org/UsrMerge

willy4711

Re: dmesg, Berechtigung

Beitrag von willy4711 » 28.11.2021 08:32:42

In Ergänzung zu schorsch_76 gab es mal hier einen Thread:
viewtopic.php?t=172624&sid=bfa8a68e06d8 ... c49d48ad58
Artikel dazu:
https://www.pro-linux.de/news/1/26836/d ... u-usr.html

Irgendwann bei einer Installation hatte ich mal mit diesemDebian usrmerge "gespielt. War aber bei
mir in Vergessenheit geraten, da der betreffende Rechner nicht mehr existiert, und inzwischen das Standard ist.

Antworten