我正在尝试实现一个简单的容器。我希望用户能够在 profile.json 文件中指定列入白名单的系统调用。
profile.json 文件的示例内容:
{
"whitelisted_syscalls": ["read", "exit", "write", "accept"],
}
然后我的应用程序只会解析这个文件并根据内容启用/禁用系统调用。
问题是seccomp_rule_add
期望用户使用SCMP_SYS
宏。例如,为了允许read
系统调用,我通常会调用:
seccomp_rule_add(filter, SCMP_ACT_ALLOW, SCMP_SYS(read), 0);
并且SCMP_SYS(read)
会根据架构展开为整数。