Linux
dmesg:讀取核心緩衝區失敗:權限被拒絕
自從最近 Debian 改變了預設行為
dmesg
,我不能簡單地從我的本地使用者使用它。% dmesg dmesg: read kernel buffer failed: Operation not permitted
同樣適用於:
% cat /dev/kmsg cat: /dev/kmsg: Operation not permitted
以錯誤跟踪器為主角,這導致:
如何將此行為更改回以前的行為,允許本地使用者使用 dmesg。我找不到它的特定組(例如 sudoers 或類似的東西)。
所以它實際上是微不足道的,查看錯誤報告中的最後一條消息:
來自上述核心的部分更新日誌: * security,printk: Enable SECURITY_DMESG_RESTRICT,預設防止非root使用者讀取核心日誌(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
為了讓它在重新啟動後仍然存在,只需將其保存為 conf 文件:
$ cat /etc/sysctl.d/10-local.conf kernel.dmesg_restrict = 0