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).

malat
quelle

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
malat
quelle
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