Košík je prázdný

Po aktualizaci jádra (kernelu) na systému CentOS 7 se můžete setkat s chybou, která znemožňuje čtení kernelového bufferu pomocí příkazu dmesg. Chybová zpráva "dmesg: read kernel buffer failed: Operation not permitted" ukazuje na problém s oprávněními, který byl zaveden novějšími verzemi jádra Linuxu jako bezpečnostní opatření. V tomto článku probereme kroky, které vám pomohou tuto chybu opravit a obnovit funkčnost příkazu dmesg.

Příčina problému

Zmíněná chybová zpráva je výsledkem zpřísnění bezpečnostní politiky v rámci jádra Linuxu. Konkrétně se jedná o ochranu související s kernelovým parametrem kernel.dmesg_restrict, jehož hodnota byla změněna na 1 (zapnuto). Toto nastavení omezuje přístup k dmesg pouze pro uživatele s root oprávněními nebo uživatele ve skupině, která má oprávnění číst dmesg.

Řešení

Krok 1: Zkontrolujte hodnotu dmesg_restrict

Nejprve ověřte aktuální hodnotu dmesg_restrict pomocí následujícího příkazu:

sysctl kernel.dmesg_restrict

Pokud je výstup kernel.dmesg_restrict = 1, potvrzuje to, že omezení je aktivní.

Krok 2: Změňte hodnotu dmesg_restrict dočasně

Můžete dočasně změnit hodnotu dmesg_restrict na 0 (vypnuto) pomocí následujícího příkazu:

sudo sysctl -w kernel.dmesg_restrict=0
 

Tento příkaz umožní všem uživatelům přístup k dmesg do doby restartu systému.

Krok 3: Trvalá změna hodnoty dmesg_restrict

Pro trvalou změnu otevřete soubor /etc/sysctl.conf v textovém editoru:

sudo nano /etc/sysctl.conf

A přidejte nebo upravte následující řádek:

kernel.dmesg_restrict = 0

Uložte soubor a použijte změny pomocí:

sudo sysctl -p

Krok 4: Alternativní řešení pomocí oprávnění

Pokud chcete zachovat bezpečnostní opatření a povolit přístup k dmesg pouze pro specifické uživatele, můžete přidat uživatele do skupiny, která má oprávnění číst dmesg. To lze provést následovně:

sudo usermod -a -G syslog <uživatelské_jméno>

Nezapomeňte nahradit <uživatelské_jméno> skutečným jménem uživatele. Uživatel bude muset znovu přihlásit, aby se změny projevily.

 

Chyba "dmesg: read kernel buffer failed: Operation not permitted" je bezpečnostní funkcí, která byla zavedena pro ochranu citlivých informací před neoprávněným přístupem. I když je možné toto omezení obejít, je důležité zvážit potenciální bezpečnostní rizika spojená s těmito změnami. Vždy se snažte najít rovnováhu mezi bezpečností a pohodlím při konfiguraci systémových nastavení.