dmesg: Lesen des Kernel-Puffers fehlgeschlagen: Berechtigung verweigert


17

Seit kurzem hat Debian das Standardverhalten für geändert dmesgund ich kann es nicht einfach von meinem lokalen Benutzer verwenden.

% dmesg
dmesg: read kernel buffer failed: Operation not permitted

Gleiches gilt für:

% cat /dev/kmsg                      
cat: /dev/kmsg: Operation not permitted

Die Hauptrolle im Bug Tracker führte zu:

Wie ändere ich dieses Verhalten auf das vorherige zurück, bei dem der lokale Benutzer dmesg verwenden darf? Ich konnte keine bestimmte Gruppe dafür finden (zB Sudoer oder ähnliches).

Antworten:


21

Es war also eigentlich trivial, die allerletzte Nachricht aus dem Fehlerbericht zu betrachten:

Teil des Änderungsprotokolls des oben genannten Kernels: * security, printk: Aktivieren Sie SECURITY_DMESG_RESTRICT, um zu verhindern, dass Benutzer ohne Rootberechtigung das Kernelprotokoll standardmäßig lesen (sysctl: kernel.dmesg_restrict).

Die Lösung ist also einfach einmal auszuführen:

% sudo sysctl kernel.dmesg_restrict=0
kernel.dmesg_restrict = 0

Dann kann Ihr lokaler Benutzer die Verwendung dmesgwieder aufnehmen. Dies gilt für jeden Benutzer anstelle einer Gruppe, die ich ursprünglich angenommen habe.

Alles ist wieder so, wie ich es wollte:

% dmesg|wc
   1307   11745   93652

und

% cat /dev/kmsg|head|wc
     10      82     857

Und damit es auch nach einem Neustart erhalten bleibt, speichern Sie es einfach als conf-Datei:

$ cat /etc/sysctl.d/10-local.conf 
kernel.dmesg_restrict = 0

Können Sie diesen Befehl ausführen: cat /dev/kmesgals normaler Benutzer?
Direprobs

Es sollte sich /dev/kmsgbei dem ersten Kommentar um einen Tippfehler handeln.
Direprobs

Einfacher, es dauerhaft zu machen, indem man kernel.dmesg_restrict = 0 zu/etc/sysctl.conf
Knobee
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.