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

17

Depuis récemment, Debian a changé le comportement par défaut de dmesget 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 bug tracker, cela a conduit à:

Comment puis-je remplacer ce comportement par le précédent, où les utilisateurs locaux sont autorisés à utiliser dmesg. Je n'ai pas pu trouver un groupe particulier pour cela (par exemple. Sudoers ou quelque chose comme ça).

malat
la source

Réponses:

22

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

Ensuite, votre utilisateur local peut recommencer à utiliser dmesg. Cela s'applique à tout 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
malat
la source
Pouvez-vous exécuter cette commande: en cat /dev/kmesgtant qu'utilisateur régulier?
direprobs
Ce devrait être /dev/kmsgdans le premier commentaire une faute de frappe.
direprobs
Plus facile à rendre permanent en ajoutant kernel.dmesg_restrict = 0 à/etc/sysctl.conf
Knobee