dmesg: falha no buffer de leitura do kernel: permissão negada

17

Desde recentemente, o Debian mudou o comportamento padrão dmesge não posso usá-lo simplesmente pelo meu usuário local.

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

O mesmo vale para:

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

Estrelando o rastreador de erros, isso leva a:

Como altero esse comportamento de volta ao anterior, onde o usuário local tem permissão para usar o dmesg. Não consegui encontrar um grupo específico para ele (por exemplo, sudoers ou algo parecido).

malat
fonte

Respostas:

21

Portanto, foi realmente trivial, olhando para a última mensagem do relatório de erro:

Parte do registro de alterações do kernel mencionado acima: * security, printk: Ative SECURITY_DMESG_RESTRICT, impedindo que usuários não raiz leiam o log do kernel por padrão (sysctl: kernel.dmesg_restrict)

Portanto, a solução é simplesmente executar uma vez:

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

Em seguida, seu usuário local pode começar a usar dmesgnovamente. Isso se aplica a qualquer usuário, em vez de um grupo que eu assumi inicialmente.

Tudo está de volta ao que eu queria:

% dmesg|wc
   1307   11745   93652

e

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

E para persistir durante as reinicializações, salve-o como arquivo conf:

$ cat /etc/sysctl.d/10-local.conf 
kernel.dmesg_restrict = 0
malat
fonte
Você é capaz de executar este comando: cat /dev/kmesgcomo um usuário comum?
direprobs
Deve ser /dev/kmsgo primeiro comentário que foi um erro de digitação.
direprobs
Mais fácil torná-lo permanente adicionando kernel.dmesg_restrict = 0 a/etc/sysctl.conf
Knobee 25/07/19