dmesg: error al leer el búfer del kernel: permiso denegado

17

Desde hace poco, Debian ha cambiado el comportamiento predeterminado dmesgy no puedo usarlo simplemente desde mi usuario local.

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

Lo mismo vale para:

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

Al protagonizar el rastreador de errores, esto condujo a:

¿Cómo cambio este comportamiento al anterior, donde los usuarios locales pueden usar dmesg? No pude encontrar un grupo particular para él (por ejemplo, sudoers o algo así).

malat
fuente

Respuestas:

22

Así que fue realmente trivial, mirando el último mensaje del informe de error:

Parte del registro de cambios del núcleo mencionado anteriormente: * seguridad, printk: Habilita SECURITY_DMESG_RESTRICT, evitando que los usuarios no root lean el registro del núcleo de forma predeterminada (sysctl: kernel.dmesg_restrict)

Entonces, la solución es simplemente ejecutar una vez:

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

Entonces su usuario local puede comenzar a usar dmesg nuevamente. Esto se aplica a cualquier usuario, en lugar de un grupo que inicialmente asumí.

Todo vuelve a lo que quería:

% dmesg|wc
   1307   11745   93652

y

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

Y para que persista durante los reinicios, simplemente guárdelo como archivo conf:

$ cat /etc/sysctl.d/10-local.conf 
kernel.dmesg_restrict = 0
malat
fuente
¿Eres capaz de ejecutar este comando: cat /dev/kmesgcomo usuario normal?
direprobs
Debería estar /dev/kmsgen el primer comentario que fue un error tipográfico.
direprobs
Es más fácil hacerlo permanente agregando kernel.dmesg_restrict = 0 a/etc/sysctl.conf
Knobee el