web-dev-qa-db-fra.com

dmesg: échec de lecture du tampon du noyau: autorisation refusée

Depuis récemment, Debian a changé le comportement par défaut de dmesg et je ne peux pas l'utiliser simplement depuis mon utilisateur local.

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

De même pour:

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

Avec le suivi des bogues, cela conduit à:

Comment puis-je modifier ce comportement pour revenir au précédent, où l'utilisateur local est autorisé à utiliser dmesg. Je n'ai pas pu trouver un groupe particulier pour cela (par exemple. Sudoers ou quelque chose comme ça).

18
malat

Donc, c'était en fait trivial, en regardant le tout dernier message du rapport de bogue:

Une partie du journal des modifications du noyau susmentionné: * security, printk: Enable SECURITY_DMESG_RESTRICT, empêchant les utilisateurs non root de lire le journal du noyau par défaut (sysctl: kernel.dmesg_restrict)

La solution consiste donc à exécuter une seule fois:

% Sudo sysctl kernel.dmesg_restrict=0
kernel.dmesg_restrict = 0

Votre utilisateur local peut alors recommencer à utiliser dmesg. Cela s'applique à n'importe quel utilisateur, au lieu d'un groupe que j'ai initialement supposé.

Tout revient à ce que je voulais:

% dmesg|wc
   1307   11745   93652

et

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

Et pour qu'il persiste après les redémarrages, enregistrez-le simplement en tant que fichier conf:

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