动态调试权限问题(k5.0.0)

动态调试权限问题(k5.0.0)

当我尝试读取或修改内核 dynamic_debug 设置时,遇到了权限问题。

root@roberto:/sys/kernel/debug/dynamic_debug# cat control
cat: control: Operation not permitted

我没有看到任何与此相关的 apparmor 审计消息,并且经典的 UNIX 权限看起来不错。

root@roberto:/sys/kernel/debug/dynamic_debug# ll
total 0
drwxr-xr-x  2 root root 0 Aug 29 21:23 ./
drwx------ 40 root root 0 Aug 29 21:23 ../
-rw-r--r--  1 root root 0 Aug 29 21:23 control

似乎没有任何奇怪的 ACL:

root@roberto:/sys/kernel/debug/dynamic_debug# getfacl control 
# file: control
# owner: root
# group: root
user::rw-
group::r--
other::r--

我并不是 Linux 功能方面的专家,但capsh --print两者cat /proc/<pid>/status似乎都暗示所有功能都已启用。

我正在运行带有硬件支持内核的 Ubuntu 服务器 18.04。

cbaker@roberto:~$ uname -a
Linux roberto 5.0.0-25-generic #26~18.04.1-Ubuntu SMP Thu Aug 1 13:51:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

我可以将 dyndbg 标志添加到 modprobe conf 文件中,以便单独启用动态调试。结果按预期显示在 dmesg 中。

关于可能导致 debugfs 控制节点失败的原因,您有什么想法吗?我倾向于认为这是 Ubuntu 应用于内核的一些自定义补丁,或者可能是不会创建审计消息的隐藏/内置 apparmor 配置文件。

答案1

我相信您应该看到以下行dmesg

[1933752.889994] Lockdown: bash: debugfs is restricted; see man kernel_lockdown.7

如果是这种情况,debugfs即使是 root 用户也无法使用。

以供参考:

相关内容