当我尝试读取或修改内核 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 用户也无法使用。
以供参考: