使用seccomp用户空间通知时(https://www.kernel.org/doc/html/latest/userspace-api/seccomp_filter.html)通过SECCOMP_RET_USER_NOTIF,我发现PID作为SECCOMP_NOTIF结构的一部分对于一些过滤决策非常有用。在ebpf过滤器中,可以使用诸如bpf_get_current_pid_tgid((之类的辅助函数来获取此类信息。但由于seccomp似乎只支持经典的BPF,我想知道是否还有其他方法。据我所知,在seccomp过滤器内部,只能访问seccomp_data结构。有没有一种方法可以直接获取seccomp过滤器中的PID等特定信息?
不,除非是syscall参数的一部分,否则您无法从seccomp过滤器本身获取该信息。要检索PID,您必须将控制权交给用户空间ptracer进程,或者如您所述依赖SECCOMP_RET_USER_NOTIF
。