我有一个函数 f(),它返回 0 或 1 - 0 表示假,1 表示真。我想做的是用 seccomp-bpf 设置一个规则,这样系统调用“fopen”只有在 f(--fopen 的第一个参数--) == 1 时才被允许。
我该怎么做?
据我了解 seccomp-bpf 任意 f() 是不可能的。如果 f 可以翻译为 BPF 序列,只需将其应用于第一个参数。
另一种选择是使用 ptrace 或 seccomp-buf 和 ptrace 的组合来细粒度限制 fopen 调用的功能
这种组合使用的一个例子是 sydbox http://dev.exherbo.org/~alip/sydbox/sydbox.html