dmesg: odczyt bufora jądra nie powiódł się: Odmowa uprawnień


17

Od niedawna Debian zmienił domyślne zachowanie dmesgi nie mogę go używać po prostu z mojego lokalnego użytkownika.

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

To samo dotyczy:

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

Występowanie w narzędziu do śledzenia błędów prowadzi do:

Jak zmienić to zachowanie z powrotem na poprzednie, w którym lokalny użytkownik może korzystać z dmesg. Nie mogłem znaleźć dla niego konkretnej grupy (np. Sudoers lub coś w tym rodzaju).

Odpowiedzi:


22

Więc to było naprawdę trywialne, patrząc na ostatnią wiadomość z raportu o błędzie:

Część dziennika zmian z wyżej wspomnianego jądra: * bezpieczeństwo, printk: Włącz SECURITY_DMESG_RESTRICT, uniemożliwiając domyślnym użytkownikom odczytywania dziennika jądra przez użytkownika innego niż root (sysctl: kernel.dmesg_restrict)

Tak więc rozwiązaniem jest jednorazowe uruchomienie:

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

Następnie lokalny użytkownik może zacząć dmesgponownie używać . Dotyczy to każdego użytkownika, zamiast grupy, którą początkowo zakładałem.

Wszystko wróciło do tego, czego chciałem:

% dmesg|wc
   1307   11745   93652

i

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

Aby nadal występował po ponownym uruchomieniu, po prostu zapisz go jako plik conf:

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

Czy możesz wykonać to polecenie: cat /dev/kmesgjako zwykły użytkownik?
direprobs,

Powinien to być /dev/kmsgpierwszy komentarz, który był literówką.
direprobs

Łatwiej jest to zrobić na stałe, dodając kernel.dmesg_restrict = 0 do/etc/sysctl.conf
Knobee
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.