在 Linux 上使用审计系统 ( auditd
, auditctl
) 是否可以在抽象命名空间上记录到 Unix 域套接字的连接(或者更准确地说是根据(抽象)路径过滤它们)?
例如,我可以通过以下方式记录到 X 服务器的:0
连接/tmp/.X11-unix/X0
:
auditctl -a exit,always -F arch=b64 -S connect -F path=/tmp/.X11-unix/X0
Run Code Online (Sandbox Code Playgroud)
但是我如何对抽象命名空间 ( @/tmp/.X11-unix/X0
)上的连接做同样的事情?
我快速浏览了一下,似乎内核会拒绝不以“/”开头的路径,因此不可能在那里传递空值。除非我看错地方,否则这就是强制执行的原因:
在 kernel/audit_watch.c中:audit_to_watch():
if (path[0] != '/' || path[len-1] == '/' ||
krule->listnr != AUDIT_FILTER_EXIT ||
op != Audit_equal ||
krule->inode_f || krule->watch || krule->tree)
return -EINVAL;
Run Code Online (Sandbox Code Playgroud)
可能值得针对此提交错误报告/请求