为什么进入seccomp模式的进程总是在退出时被终止?
$ cat simple.c
#include <stdio.h>
#include <stdlib.h>
#include <linux/prctl.h>
int main( int argc, char **argv )
{
printf("Starting\n");
prctl(PR_SET_SECCOMP, 1);
printf("Running\n");
exit(0);
}
$ cc -o simple simple.c
$ ./simple || echo "Returned $?"
Starting
Running
Killed
Returned 137发布于 2012-04-12 06:17:14
在手册页的PR_SET_SECCOMP下,唯一允许的系统调用是read、write、exit和sigreturn。
当您在标准库中调用exit(0)时(在最近的Linux中),您调用的是exit_group系统调用,而不是exit。这是不允许的,所以你会得到一个SIGKILL。
(如果您停止该过程,您可以看到这一点...)
https://stackoverflow.com/questions/10114583
复制相似问题