dmesg: lettura del buffer del kernel non riuscita: autorizzazione negata


17

Da poco Debian ha cambiato il comportamento predefinito per dmesge non posso usarlo semplicemente dal mio utente locale.

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

Lo stesso vale per:

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

Protagonisti al bug tracker questo ha portato a:

Come posso modificare questo comportamento indietro a quello precedente, in cui agli utenti locali è consentito utilizzare dmesg. Non sono riuscito a trovare un gruppo particolare per questo (es. Sudoers o qualcosa del genere).

Risposte:


22

Quindi è stato davvero banale, guardando l'ultimo messaggio dalla segnalazione di bug:

Parte del log delle modifiche dal suddetto kernel: * security, printk: abilita SECURITY_DMESG_RESTRICT, impedendo agli utenti non root di leggere il registro del kernel per impostazione predefinita (sysctl: kernel.dmesg_restrict)

Quindi la soluzione è semplicemente eseguire una volta:

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

Quindi l'utente locale può ricominciare a utilizzare dmesg. Questo vale per qualsiasi utente, anziché per un gruppo che inizialmente avevo assunto.

Tutto è tornato a quello che volevo:

% dmesg|wc
   1307   11745   93652

e

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

E per far sì che persista durante i riavvii, è sufficiente salvarlo come file conf:

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

Sei in grado di eseguire questo comando: cat /dev/kmesgcome utente normale?
direprobs,

Dovrebbe essere /dev/kmsgnel primo commento che era un errore di battitura.
direprobs,

È più facile renderlo permanente aggiungendo kernel.dmesg_restrict = 0 a/etc/sysctl.conf
Knobee il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.