dmesg: не вдалося прочитати буфер ядра: Дозвіл відхилено


17

З недавнього часу Debian змінив поведінку за замовчуванням для, dmesgі я не можу використовувати її просто від свого місцевого користувача.

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

Те саме стосується:

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

Позначаючи помилку на помилку, це призводить до:

Як змінити цю поведінку на попередню, де місцевому користувачеві дозволено використовувати dmesg. Я не міг знайти для нього певної групи (наприклад, судори чи щось подібне).

Відповіді:


22

Тож насправді було тривіально, дивлячись на останнє повідомлення з повідомлення про помилку:

Частина журналу змін з вищезгаданого ядра: * безпека, printk: Увімкнути SECURITY_DMESG_RESTRICT, запобігаючи некористувальним користувачам читати журнал ядра за замовчуванням (sysctl: kernel.dmesg_restrict)

Тож рішення - просто запустити один раз:

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

Тоді ваш місцевий користувач може dmesgзнову почати користуватися . Це стосується будь-якого користувача, а не групи, про яку я спочатку припускав.

Все повернулося до того, що я хотів:

% dmesg|wc
   1307   11745   93652

і

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

А щоб він зберігався через перезавантаження, просто збережіть його як файл конф:

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

Чи можете ви виконати цю команду: cat /dev/kmesgяк звичайний користувач?
direprobs

Це повинно бути /dev/kmsgв першому коментарі, який був помилковим.
direprobs

Простіше зробити його постійним, додавши kernel.dmesg_restrict = 0 до/etc/sysctl.conf
Knobee
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.