Я пытаюсь создать фильтр seccomp, который заносит в черный список использование fork ().Это мой код:
#include <seccomp.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
int main(void) {
int rc = -1;
int pid_t;
scmp_filter_ctx ctx;
ctx = seccomp_init(SCMP_ACT_ALLOW);
// possible issue for torsocks: needs arg count
rc = seccomp_rule_add(ctx, SCMP_ACT_KILL, SCMP_SYS(fork), 0);
printf("seccomp rule add return value: %d\n", rc);
rc = seccomp_load(ctx);
printf("seccomd_load return value: %d\n", rc);
pid_t = fork();
printf("%d\n", pid_t);
seccomp_release(ctx);
return 0;
}
Я компилирую так:
hc01@HC01:~/torsocks$ gcc test_seccomp.c -lseccomp
Затем запустите, чтобы получить следующий вывод:
hc01@HC01:~/torsocks$ ./a.out
seccomp rule add return value: 0
seccomd_load return value: 0
15384
0
Подразумевается, что я смогдля успешного форка, и seccomp_add_rule и seccomp_load работают успешно.Может кто-нибудь помочь мне понять, что я делаю не так?Спасибо!