mal*_*lat 33 linux debian sysctl dmesg
由于最近 Debian 更改了默认行为dmesg
,我不能简单地从本地用户使用它。
% dmesg
dmesg: read kernel buffer failed: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
同样适用于:
% cat /dev/kmsg
cat: /dev/kmsg: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
以错误跟踪器为主角,这导致:
如何将此行为改回前一个行为,其中允许本地用户使用 dmesg。我找不到它的特定组(例如 sudoers 或类似的东西)。
mal*_*lat 49
所以这实际上是微不足道的,看看错误报告中的最后一条消息:
来自上述内核的部分变更日志: * security,printk: Enable SECURITY_DMESG_RESTRICT,防止非root用户默认读取内核日志(sysctl:kernel.dmesg_restrict)
所以解决方案只是运行一次:
% sudo sysctl kernel.dmesg_restrict=0
kernel.dmesg_restrict = 0
Run Code Online (Sandbox Code Playgroud)
然后您的本地用户可以dmesg
再次开始使用。这适用于任何用户,而不是我最初假设的组。
一切都回到了我想要的样子:
% dmesg|wc
1307 11745 93652
Run Code Online (Sandbox Code Playgroud)
和
% cat /dev/kmsg|head|wc
10 82 857
Run Code Online (Sandbox Code Playgroud)
为了让它在重新启动后仍然存在,只需将其保存为 conf 文件:
$ cat /etc/sysctl.d/10-local.conf
kernel.dmesg_restrict = 0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39821 次 |
最近记录: |