当我尝试读取或修改内核 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 配置文件。