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í.