Man page - seccomp(2)
Packages contains this manual
- __malloc_initialize_hook(3)
- getpwuid(3)
- frexpl(3)
- fchown(2)
- setttyent(3)
- pthread_attr_setstacksize(3)
- calloc(3)
- clog(3)
- seteuid(2)
- res_nquerydomain(3)
- y0l(3)
- catanl(3)
- catanh(3)
- inet_addr(3)
- getcwd(2)
- epoll_create1(2)
- atol(3)
- pciconfig_write(2)
- htonl(3)
- timer_settime(2)
- munmap(2)
- cexpl(3)
- rt_sigsuspend(2)
- msgctl(2)
- tan(3)
- get_mempolicy(2)
- roundf(3)
- towctrans(3)
- xdr_opaque(3)
- psignal(3)
- error_at_line(3)
- xdrmem_create(3)
- select(2)
- getdate_r(3)
- getprotobyname_r(3)
- nrand48_r(3)
- inet_netof(3)
- inet_ntoa(3)
- nextafterl(3)
- innetgr(3)
- on_exit(3)
- expm1l(3)
- strfmon(3)
- strdup(3)
- getservbyport(3)
- arch_prctl(2)
- j0(3)
- wait4(2)
- personality(2)
- bpf(2)
- pvalloc(3)
- getresuid32(2)
- des_setparity(3)
- prctl(2)
- clog10(3)
- aio_init(3)
- pthread_getconcurrency(3)
- csinl(3)
- linkat(2)
- vsscanf(3)
- isascii(3)
- xdr_union(3)
- nan(3)
- utimensat(2)
- ioctl_vt(2)
- _newselect(2)
- ldexpl(3)
- fabsf(3)
- chown(2)
- mkstemps(3)
- pthread_attr_getstacksize(3)
- listxattr(2)
- getpgrp(2)
- xdr_short(3)
- tcflush(3)
- pthread_cond_wait(3)
- argz_add(3)
- wcpncpy(3)
- reallocarray(3)
- llrintf(3)
- outsl(2)
- qsort(3)
- authnone_create(3)
- tzname(3)
- setresuid32(2)
- isspace(3)
- open_by_handle_at(2)
- drem(3)
- conjf(3)
- nanosleep(2)
- pthread_kill(3)
- putc(3)
- pthread_condattr_destroy(3)
- getpwuid_r(3)
- strverscmp(3)
- res_init(3)
- cacosl(3)
- qecvt_r(3)
- iswgraph(3)
- gethostbyname(3)
- ntohl(3)
- acct(2)
- asinl(3)
- envz_merge(3)
- strdupa(3)
- idle(2)
- getopt_long_only(3)
- hstrerror(3)
- fanotify_init(2)
- fputs_unlocked(3)
- sleep(3)
- vfprintf(3)
- scalb(3)
- nanl(3)
- lchown32(2)
- getnetent_r(3)
- fcntl(2)
- inw(2)
- rintl(3)
- arc4random(3)
- getsockopt(2)
- ilogbl(3)
- clog2(3)
- encrypt(3)
- sqrtf(3)
- isspace_l(3)
- tanl(3)
- cfmakeraw(3)
- assert(3)
- strtoull(3)
- xdrstdio_create(3)
- optopt(3)
- setrlimit(2)
- lround(3)
- xdr_accepted_reply(3)
- fmin(3)
- mq_notify(3)
- svcerr_auth(3)
- sbrk(2)
- recv(2)
- mq_unlink(2)
- strxfrm(3)
- ctan(3)
- atoi(3)
- xcrypt(3)
- sgetspent(3)
- fread(3)
- isless(3)
- ceil(3)
- pthread_cond_broadcast(3)
- oldfstat(2)
- outl(2)
- times(2)
- wcslen(3)
- popen(3)
- wprintf(3)
- labs(3)
- getrpcbynumber(3)
- shmat(2)
- clock_gettime(2)
- btree(3)
- s390_sthyi(2)
- siggetmask(3)
- getgid32(2)
- puts(3)
- scalblnl(3)
- strpbrk(3)
- catanhl(3)
- vlimit(3)
- getrpcent(3)
- tgammal(3)
- strtoll(3)
- funlockfile(3)
- xdecrypt(3)
- pthread_key_delete(3)
- setgrent(3)
- wmemmove(3)
- gnu_dev_major(3)
- regexec(3)
- lrintl(3)
- __ppc_set_ppr_med(3)
- rmdir(2)
- io_getevents(2)
- request_key(2)
- ecvt(3)
- __ppc_mdoom(3)
- mktemp(3)
- key_gendes(3)
- le64toh(3)
- statvfs(3)
- rpc(3)
- getdate_err(3)
- munlockall(2)
- close(2)
- xdr_rejected_reply(3)
- dlerror(3)
- le32toh(3)
- feclearexcept(3)
- insque(3)
- clntraw_create(3)
- getutid(3)
- strtof(3)
- settimeofday(2)
- mkdir(2)
- rewind(3)
- logf(3)
- tmpnam(3)
- iswpunct(3)
- wcrtomb(3)
- epoll_pwait(2)
- getitimer(2)
- wordexp(3)
- clog2f(3)
- capset(2)
- strrchr(3)
- outsb(2)
- freeifaddrs(3)
- getwc_unlocked(3)
- ustat(2)
- bswap_16(3)
- program_invocation_short_name(3)
- ldiv(3)
- exp10f(3)
- vprintf(3)
- wcsncpy(3)
- iscntrl(3)
- readlink(2)
- semget(2)
- connect(2)
- psiginfo(3)
- epoll_ctl(2)
- removexattr(2)
- envz_strip(3)
- fgetxattr(2)
- atexit(3)
- putgrent(3)
- bswap(3)
- getegid32(2)
- qecvt(3)
- asinh(3)
- isfdtype(3)
- setenv(3)
- readdir(3)
- rtime(3)
- nearbyint(3)
- getgroups32(2)
- statx(2)
- modify_ldt(2)
- cpow(3)
- eventfd_read(3)
- sendfile64(2)
- getnetbyname(3)
- fremovexattr(2)
- uselib(2)
- inet(3)
- endutxent(3)
- clnt_spcreateerror(3)
- pututline(3)
- nexttowardl(3)
- getipnodebyaddr(3)
- fts_set(3)
- memmem(3)
- fmodl(3)
- setfsuid32(2)
- wordfree(3)
- fadvise64(2)
- getppid(2)
- qsort_r(3)
- toupper(3)
- getwc(3)
- fputws(3)
- mrand48(3)
- preadv(2)
- sincosf(3)
- fstatat64(2)
- dirfd(3)
- jnf(3)
- static_assert(3)
- wctype(3)
- vwarn(3)
- setfsent(3)
- listen(2)
- wcstok(3)
- argz_insert(3)
- select_tut(2)
- ctanl(3)
- getunwind(2)
- difftime(3)
- daylight(3)
- sigpause(3)
- wcscat(3)
- dlclose(3)
- __ppc_set_ppr_med_low(3)
- pread(2)
- fstatvfs(3)
- cbrtf(3)
- strnlen(3)
- sinhl(3)
- inl_p(2)
- setregid32(2)
- putwc(3)
- register_printf_type(3)
- nextafterf(3)
- opendir(3)
- strtod(3)
- tgamma(3)
- malloc_get_state(3)
- aio_write(3)
- timezone(3)
- xdr_pmaplist(3)
- sysfs(2)
- index(3)
- svcerr_noproc(3)
- envz(3)
- klogctl(3)
- pselect(2)
- get_current_dir_name(3)
- xdr_char(3)
- asinhf(3)
- preadv2(2)
- inotify_init1(2)
- pthread_attr_setstackaddr(3)
- getline(3)
- tanhf(3)
- rtnetlink(3)
- pkey_alloc(2)
- edata(3)
- stailq(3)
- isastream(2)
- setregid(2)
- copy_file_range(2)
- rcmd_af(3)
- futex(2)
- prof(2)
- siglongjmp(3)
- hdestroy(3)
- catan(3)
- pthread_cond_signal(3)
- mkfifoat(3)
- clntudp_create(3)
- getentropy(3)
- vsprintf(3)
- fabs(3)
- lseek64(3)
- pthread_setname_np(3)
- conjl(3)
- chroot(2)
- ccoshf(3)
- erand48_r(3)
- wcsnrtombs(3)
- rindex(3)
- fputc_unlocked(3)
- setresgid32(2)
- gettimeofday(2)
- cexp(3)
- inotify_add_watch(2)
- set_robust_list(2)
- nice(2)
- strtold(3)
- mq_getattr(3)
- xdr(3)
- getxattr(2)
- getrandom(2)
- splice(2)
- strerror(3)
- fcntl64(2)
- fnmatch(3)
- ungetwc(3)
- getspnam_r(3)
- clearenv(3)
- atan2(3)
- get_myaddress(3)
- open(2)
- pthread_setcancelstate(3)
- newlocale(3)
- open_memstream(3)
- setprotoent(3)
- logbf(3)
- ilogb(3)
- wmemcpy(3)
- tcsendbreak(3)
- be16toh(3)
- perfmonctl(2)
- strtoq(3)
- getgrgid_r(3)
- pthread_timedjoin_np(3)
- memfd_create(2)
- getttynam(3)
- mcheck_pedantic(3)
- _llseek(2)
- renameat2(2)
- ioperm(2)
- ecb_crypt(3)
- pthread_condattr_init(3)
- fminl(3)
- lio_listio(3)
- envz_add(3)
- setbuf(3)
- setkey(3)
- expm1(3)
- strtoul(3)
- getcwd(3)
- setutxent(3)
- getrpcent_r(3)
- unimplemented(2)
- fclose(3)
- epoll_create(2)
- getfsent(3)
- key_secretkey_is_set(3)
- vserver(2)
- vswprintf(3)
- sigsuspend(2)
- pututxline(3)
- clnt_freeres(3)
- cacheflush(2)
- ioprio_set(2)
- alarm(2)
- fgetc(3)
- __fpurge(3)
- getlogin_r(3)
- vfork(2)
- bstring(3)
- div(3)
- getrusage(2)
- gettid(2)
- dprintf(3)
- strtoumax(3)
- jrand48(3)
- iswcntrl(3)
- vwarnx(3)
- cacos(3)
- ccoshl(3)
- fesetexceptflag(3)
- res_nclose(3)
- shmop(2)
- mcheck_check_all(3)
- vscanf(3)
- tolower(3)
- landlock_add_rule(2)
- argz_next(3)
- lroundl(3)
- ruserok(3)
- glob(3)
- brk(2)
- rename(2)
- strcspn(3)
- sched_getscheduler(2)
- wcstoumax(3)
- dbopen(3)
- xdr_bytes(3)
- fegetenv(3)
- scalbf(3)
- pkey_free(2)
- fgetgrent(3)
- strchrnul(3)
- fork(2)
- log1pf(3)
- strtoimax(3)
- fputs(3)
- putspent(3)
- ttyname_r(3)
- iswlower(3)
- epoll_wait(2)
- minor(3)
- wcsspn(3)
- sendmmsg(2)
- pthread_attr_getsigmask_np(3)
- erand48(3)
- setpgrp(2)
- db(3)
- readv(2)
- cimagf(3)
- pthread_sigmask(3)
- getresuid(2)
- gamma(3)
- logwtmp(3)
- imaxabs(3)
- y1(3)
- swapoff(2)
- svcerr_weakauth(3)
- mbtowc(3)
- madvise(2)
- __fbufsize(3)
- swapon(2)
- towlower(3)
- asin(3)
- initgroups(3)
- svc_getreqset(3)
- pthread_attr_destroy(3)
- scalblnf(3)
- ispunct(3)
- casin(3)
- xdr_pmap(3)
- sigvec(3)
- dlmopen(3)
- localeconv(3)
- tcgetattr(3)
- mempcpy(3)
- clnt_perrno(3)
- clock_getcpuclockid(3)
- setaliasent(3)
- clock(3)
- ftok(3)
- svc_run(3)
- getsubopt(3)
- coshf(3)
- pow(3)
- getpwent(3)
- ntp_gettime(3)
- xdrrec_skiprecord(3)
- symlink(2)
- shmctl(2)
- mq_timedreceive(2)
- malloc(3)
- tgkill(2)
- l64a(3)
- unlockpt(3)
- mallopt(3)
- creal(3)
- syscalls(2)
- set_tid_address(2)
- exp2f(3)
- fstatfs(2)
- statfs(2)
- dreml(3)
- feenableexcept(3)
- ftw(3)
- fanotify_mark(2)
- clnt_sperror(3)
- realpath(3)
- sysconf(3)
- _syscall(2)
- set_mempolicy(2)
- mq_unlink(3)
- freehostent(3)
- rresvport_af(3)
- nl_langinfo_l(3)
- fmaxl(3)
- iscntrl_l(3)
- copysignf(3)
- llseek(2)
- bzero(3)
- ioctl_fsmap(2)
- remquof(3)
- malloc_trim(3)
- pthread_getattr_default_np(3)
- isalnum_l(3)
- mlock(2)
- nearbyintf(3)
- confstr(3)
- sinf(3)
- ioctl_eventpoll(2)
- sigstack(3)
- seed48_r(3)
- utmpname(3)
- malloc_stats(3)
- stpncpy(3)
- getservbyport_r(3)
- cabsl(3)
- isblank(3)
- sigprocmask(2)
- isinfl(3)
- isinff(3)
- pathconf(3)
- xdr_u_short(3)
- acos(3)
- timerfd_create(2)
- key_encryptsession(3)
- log2f(3)
- oldlstat(2)
- res_querydomain(3)
- memcmp(3)
- gethostbyaddr(3)
- sighold(3)
- gtty(2)
- xdr_void(3)
- getmsg(2)
- io_setup(2)
- ttyslot(3)
- recno(3)
- cuserid(3)
- nanf(3)
- pthread_getaffinity_np(3)
- if_indextoname(3)
- remainderf(3)
- putpwent(3)
- pow10f(3)
- pwritev(2)
- swapcontext(3)
- cfsetospeed(3)
- envz_remove(3)
- cosh(3)
- a64l(3)
- uselocale(3)
- yn(3)
- msgget(2)
- pthread_equal(3)
- prlimit(2)
- setspent(3)
- newfstatat(2)
- renameat(2)
- truncf(3)
- pthread_yield(3)
- tkill(2)
- islessequal(3)
- isnanf(3)
- sethostent(3)
- setvbuf(3)
- gnu_get_libc_release(3)
- atoll(3)
- getgrnam(3)
- get_robust_list(2)
- __ppc_yield(3)
- __memalign_hook(3)
- eventfd2(2)
- mq_setattr(3)
- tmpnam_r(3)
- pmap_getport(3)
- svcfd_create(3)
- getfsspec(3)
- setgid(2)
- getlogin(3)
- get_nprocs(3)
- canonicalize_file_name(3)
- pthread_mutexattr_getrobust(3)
- strerrorname_np(3)
- csinh(3)
- malloc_set_state(3)
- tcgetsid(3)
- ssignal(3)
- secure_getenv(3)
- significandl(3)
- wcschr(3)
- isgraph(3)
- pthread_mutexattr_gettype(3)
- creat(2)
- cabsf(3)
- __ppc_set_ppr_med_high(3)
- fchdir(2)
- backtrace_symbols(3)
- exp10l(3)
- euidaccess(3)
- sync_file_range(2)
- getutxline(3)
- isdigit(3)
- sinhf(3)
- lgetxattr(2)
- getaliasent(3)
- memrchr(3)
- io_submit(2)
- clnt_create(3)
- __setfpucw(3)
- _flushlbf(3)
- lcong48_r(3)
- clog10l(3)
- pmap_getmaps(3)
- memalign(3)
- xdr_authunix_parms(3)
- execl(3)
- getdate(3)
- cfsetispeed(3)
- tanhl(3)
- wmempcpy(3)
- outw_p(2)
- faccessat(2)
- rresvport(3)
- nextup(3)
- fgetgrent_r(3)
- getopt(3)
- xdr_vector(3)
- aio_error(3)
- frexpf(3)
- getpw(3)
- sscanf(3)
- mprotect(2)
- exp(3)
- sched_getaffinity(2)
- accept4(2)
- remainderl(3)
- pthread_key_create(3)
- endian(3)
- setmntent(3)
- get_phys_pages(3)
- argz(3)
- _exit(2)
- towupper_l(3)
- lrand48(3)
- csqrt(3)
- hdestroy_r(3)
- remquo(3)
- feof_unlocked(3)
- isprint(3)
- pivot_root(2)
- arc4random_uniform(3)
- strfroml(3)
- getdomainname(2)
- va_end(3)
- getresgid(2)
- cosf(3)
- endhostent(3)
- setgid32(2)
- ioctl_fs(2)
- getaddrinfo(3)
- fgetwc(3)
- lock(2)
- getservbyname_r(3)
- sys_nerr(3)
- insb(2)
- usleep(3)
- security(2)
- cfree(3)
- tanf(3)
- fprintf(3)
- pthread_mutexattr_setpshared(3)
- xprt_unregister(3)
- alphasort(3)
- getgrent(3)
- scandirat(3)
- iruserok(3)
- ttyname(3)
- tdestroy(3)
- strcasecmp(3)
- getpgid(2)
- drand48_r(3)
- mmap(2)
- sigtimedwait(2)
- pthread_once(3)
- mq_receive(3)
- pthread_mutexattr_setkind_np(3)
- iopl(2)
- s390_runtime_instr(2)
- lckpwdf(3)
- memmove(3)
- __fpending(3)
- mbsrtowcs(3)
- restart_syscall(2)
- memset(3)
- significandf(3)
- openat2(2)
- timeradd(3)
- conj(3)
- flockfile(3)
- madvise1(2)
- inet_aton(3)
- fstatfs64(2)
- fmax(3)
- fmemopen(3)
- fmaf(3)
- lseek(2)
- registerrpc(3)
- kexec_file_load(2)
- gammal(3)
- feof(3)
- pidfd_open(2)
- crealf(3)
- clogl(3)
- getutmp(3)
- umount(2)
- inet_pton(3)
- flistxattr(2)
- xdr_wrapstring(3)
- socketcall(2)
- setrpcent(3)
- rint(3)
- vm86(2)
- sincosl(3)
- getprotoent_r(3)
- mknod(2)
- getdents64(2)
- gai_cancel(3)
- srandom_r(3)
- getnetbyname_r(3)
- sigaddset(3)
- htole16(3)
- endnetent(3)
- nextafter(3)
- timerisset(3)
- getgrent_r(3)
- freeaddrinfo(3)
- endprotoent(3)
- mbind(2)
- sigorset(3)
- pthread_rwlockattr_setkind_np(3)
- cimag(3)
- waitid(2)
- abs(3)
- unlink(2)
- recvmsg(2)
- getaliasbyname(3)
- wctrans(3)
- kill(2)
- strtol(3)
- __ppc_set_ppr_very_low(3)
- membarrier(2)
- getnetbyaddr_r(3)
- writev(2)
- errx(3)
- tfind(3)
- clone3(2)
- __freading(3)
- outw(2)
- regfree(3)
- accept(2)
- timer_getoverrun(2)
- shmdt(2)
- svcerr_decode(3)
- getnameinfo(3)
- endusershell(3)
- execvpe(3)
- cbc_crypt(3)
- res_send(3)
- xdr_destroy(3)
- getcontext(3)
- pkey_mprotect(2)
- twalk_r(3)
- isalnum(3)
- timercmp(3)
- setxattr(2)
- pthread_cleanup_pop_restore_np(3)
- stat(2)
- isupper(3)
- vsyslog(3)
- strlen(3)
- pthread_attr_setinheritsched(3)
- xdr_inline(3)
- strtouq(3)
- raise(3)
- getpeername(2)
- capget(2)
- atanl(3)
- ferror_unlocked(3)
- isxdigit_l(3)
- modfl(3)
- pthread_mutexattr_init(3)
- pthread_mutexattr_getkind_np(3)
- phys(2)
- llabs(3)
- sched_rr_get_interval(2)
- asprintf(3)
- explicit_bzero(3)
- asctime(3)
- clone(2)
- munlock(2)
- __realloc_hook(3)
- atof(3)
- rt_tgsigqueueinfo(2)
- syslog(2)
- inet_makeaddr(3)
- epoll_pwait2(2)
- iswalpha(3)
- netlink(3)
- sched_setattr(2)
- sigdescr_np(3)
- access(2)
- getc_unlocked(3)
- dysize(3)
- inet_net_pton(3)
- sched_setparam(2)
- timerfd_settime(2)
- nexttowardf(3)
- expf(3)
- svcerr_progvers(3)
- getwchar(3)
- ftime(3)
- if_nametoindex(3)
- argz_add_sep(3)
- vasprintf(3)
- unlinkat(2)
- putenv(3)
- pthread_mutexattr_setrobust_np(3)
- error_message_count(3)
- setfsgid(2)
- cmsg(3)
- setpwent(3)
- cfgetospeed(3)
- end(3)
- pidfd_send_signal(2)
- scalbn(3)
- closelog(3)
- srandom(3)
- argz_replace(3)
- ioctl_tty(2)
- va_arg(3)
- towlower_l(3)
- isblank_l(3)
- remove(3)
- expl(3)
- fscanf(3)
- versionsort(3)
- pow10(3)
- hsearch(3)
- gethostid(3)
- fchownat(2)
- group_member(3)
- getchar_unlocked(3)
- getservbyname(3)
- pthread_mutexattr_destroy(3)
- setpgid(2)
- acosf(3)
- ctanhf(3)
- shm_open(3)
- towupper(3)
- getdents(2)
- chown32(2)
- hypotf(3)
- undocumented(3)
- drand48(3)
- csinf(3)
- ctime_r(3)
- setlinebuf(3)
- ulimit(3)
- spu_create(2)
- fcvt_r(3)
- ipc(2)
- ftruncate64(2)
- fdopen(3)
- svcerr_noprog(3)
- getrpcport(3)
- csin(3)
- sinh(3)
- nrand48(3)
- openpty(3)
- xdr_double(3)
- pthread_attr_getscope(3)
- vfscanf(3)
- catanhf(3)
- inb(2)
- wcpcpy(3)
- ldexp(3)
- getopt_long(3)
- strerrordesc_np(3)
- mbsinit(3)
- argz_stringify(3)
- setbuffer(3)
- byteorder(3)
- expm1f(3)
- pthread_attr_setscope(3)
- gnu_dev_makedev(3)
- pipe(2)
- updwtmp(3)
- fts_read(3)
- ioctl_fat(2)
- h_errno(3)
- sem_getvalue(3)
- iswupper(3)
- lrint(3)
- perror(3)
- xdr_u_int(3)
- timer_create(2)
- iswdigit(3)
- fgetspent(3)
- fwrite_unlocked(3)
- reboot(2)
- ftruncate(2)
- getutmpx(3)
- pwrite64(2)
- getauxval(3)
- xdr_pointer(3)
- getprotobynumber(3)
- svc_destroy(3)
- vmsplice(2)
- inet_network(3)
- readdir_r(3)
- setsockopt(2)
- rexec(3)
- flock(2)
- getw(3)
- mmap2(2)
- j1f(3)
- cprojf(3)
- mkstemp(3)
- symlinkat(2)
- tempnam(3)
- pthread_attr_getaffinity_np(3)
- gethostbyname_r(3)
- signalfd4(2)
- sys_siglist(3)
- erfc(3)
- truncate64(2)
- verr(3)
- pthread_kill_other_threads_np(3)
- eaccess(3)
- fsetpos(3)
- slist(3)
- pmap_unset(3)
- modf(3)
- ioctl_pipe(2)
- vfwprintf(3)
- getresgid32(2)
- statfs64(2)
- cexp2(3)
- stdio_ext(3)
- login_tty(3)
- xdr_long(3)
- dlsym(3)
- clog2l(3)
- malloc_usable_size(3)
- fegetexceptflag(3)
- basename(3)
- fwrite(3)
- vhangup(2)
- printf(3)
- setnetent(3)
- gethostbyname2(3)
- mallinfo2(3)
- signbit(3)
- clnt_broadcast(3)
- sched_yield(2)
- sem_open(3)
- sigsetjmp(3)
- cacoshl(3)
- sem_unlink(3)
- setresuid(2)
- signgam(3)
- putw(3)
- imaxdiv(3)
- regex(3)
- alloc_hugepages(2)
- modff(3)
- exp10(3)
- cprojl(3)
- utime(2)
- clogf(3)
- pthread_mutex_unlock(3)
- erff(3)
- ioctl_userfaultfd(2)
- iswprint(3)
- roundl(3)
- sqrtl(3)
- fpurge(3)
- getusershell(3)
- fcloseall(3)
- xdr_opaque_auth(3)
- gethostent_r(3)
- fgetwc_unlocked(3)
- fchmod(2)
- strptime(3)
- lutimes(3)
- htole64(3)
- putchar_unlocked(3)
- create_module(2)
- isascii_l(3)
- sigaction(2)
- stdout(3)
- geteuid32(2)
- xprt_register(3)
- freopen(3)
- ccosl(3)
- pthread_setschedprio(3)
- rt_sigaction(2)
- getmntent(3)
- putwchar_unlocked(3)
- logl(3)
- remque(3)
- unsetenv(3)
- sigwaitinfo(2)
- pthread_mutexattr_getrobust_np(3)
- initstate_r(3)
- getfsfile(3)
- exp2l(3)
- isatty(3)
- lgamma_r(3)
- lrintf(3)
- outb(2)
- __clone2(2)
- strcpy(3)
- clnt_call(3)
- hypot(3)
- fegetexcept(3)
- tcsetpgrp(3)
- gets(3)
- malloc_info(3)
- nextupf(3)
- pthread_attr_getdetachstate(3)
- getaliasent_r(3)
- fstat64(2)
- futimesat(2)
- dl_iterate_phdr(3)
- posix_madvise(3)
- endnetgrent(3)
- tolower_l(3)
- pthread_attr_setstack(3)
- pread64(2)
- sigsetops(3)
- stty(2)
- process_vm_readv(2)
- isfinite(3)
- gethostbyaddr_r(3)
- cproj(3)
- gai_strerror(3)
- key_decryptsession(3)
- inet_ntop(3)
- __ppc_mdoio(3)
- btowc(3)
- setstate_r(3)
- if_nameindex(3)
- fdetach(2)
- random_r(3)
- iruserok_af(3)
- truncl(3)
- clearerr(3)
- lgammaf(3)
- lfind(3)
- ctanf(3)
- strcat(3)
- pthread_attr_getschedpolicy(3)
- pthread_rwlockattr_getkind_np(3)
- sigrelse(3)
- daemon(3)
- pthread_setcanceltype(3)
- sigevent(7)
- iswalnum(3)
- pmap_set(3)
- stdin(3)
- ceilf(3)
- asctime_r(3)
- poll(2)
- svc_unregister(3)
- isnanl(3)
- carg(3)
- getprotobyname(3)
- arm_fadvise(2)
- optind(3)
- mount_setattr(2)
- dlvsym(3)
- ntp_adjtime(3)
- abort(3)
- pthread_getname_np(3)
- execlp(3)
- bind(2)
- bsearch(3)
- endspent(3)
- register_printf_specifier(3)
- landlock_create_ruleset(2)
- mkostemp(3)
- setgroups(2)
- toupper_l(3)
- argz_extract(3)
- sigblock(3)
- j0l(3)
- argz_delete(3)
- setusershell(3)
- getspnam(3)
- optarg(3)
- vm86old(2)
- sigandset(3)
- getdtablesize(3)
- getsockname(2)
- pthread_sigqueue(3)
- ptsname(3)
- j1(3)
- lgamma(3)
- getpagesize(2)
- pthread_mutex_lock(3)
- setsid(2)
- strncat(3)
- ioctl_kd(2)
- tsearch(3)
- mq_notify(2)
- fcvt(3)
- clntudp_bufcreate(3)
- getpwent_r(3)
- pthread_getspecific(3)
- memfrob(3)
- arc4random_buf(3)
- forkpty(3)
- powl(3)
- dlopen(3)
- stderr(3)
- set_thread_area(2)
- query_module(2)
- sem_close(3)
- strndup(3)
- __malloc_hook(3)
- setjmp(3)
- stdio(3)
- bdflush(2)
- sendto(2)
- mpx(2)
- fopen(3)
- setpriority(2)
- nextdownl(3)
- mprobe(3)
- oldstat(2)
- sem_destroy(3)
- bcopy(3)
- remap_file_pages(2)
- isgreaterequal(3)
- getpass(3)
- seekdir(3)
- break(2)
- authunix_create_default(3)
- tty_ioctl(4)
- process_madvise(2)
- endfsent(3)
- atoq(3)
- strftime(3)
- fts(3)
- getgrgid(3)
- isxdigit(3)
- ftello(3)
- regcomp(3)
- error(3)
- getenv(3)
- clnt_sperrno(3)
- readahead(2)
- y0(3)
- roundup(3)
- io_destroy(2)
- vsnprintf(3)
- lgammal(3)
- eventfd_write(3)
- pthread_mutex_trylock(3)
- lchown(2)
- dladdr(3)
- error_print_progname(3)
- pthread_mutexattr_settype(3)
- strspn(3)
- __after_morecore_hook(3)
- localtime(3)
- fsync(2)
- ether_aton(3)
- csinhl(3)
- trunc(3)
- xdr_u_char(3)
- syslog(3)
- y1f(3)
- ioctl_nsfs(2)
- wmemcmp(3)
- ffsll(3)
- ether_ntohost(3)
- bswap_32(3)
- umount2(2)
- sigfillset(3)
- landlock_restrict_self(2)
- pthread_join(3)
- sysinfo(2)
- clock_settime(2)
- llrint(3)
- s390_guarded_storage(2)
- getc(3)
- inet_lnaof(3)
- tcgetpgrp(3)
- clock_getres(2)
- etext(3)
- strfmon_l(3)
- putwc_unlocked(3)
- xdr_replymsg(3)
- scalbl(3)
- fdim(3)
- getspent(3)
- sem_timedwait(3)
- posix_fallocate(3)
- res_nmkquery(3)
- pthread_spin_unlock(3)
- mq_timedsend(2)
- opterr(3)
- getloadavg(3)
- strsignal(3)
- finite(3)
- inw_p(2)
- csinhf(3)
- execveat(2)
- seed48(3)
- sigset(3)
- setgroups32(2)
- logbl(3)
- wcsdup(3)
- clnt_geterr(3)
- sys_errlist(3)
- inotify_rm_watch(2)
- qgcvt(3)
- wcspbrk(3)
- sin(3)
- lookup_dcookie(2)
- s390_pci_mmio_read(2)
- wcscmp(3)
- getutxent(3)
- pciconfig_read(2)
- initstate(3)
- backtrace(3)
- putc_unlocked(3)
- fedisableexcept(3)
- rt_sigprocmask(2)
- clock_adjtime(2)
- fwprintf(3)
- jnl(3)
- grantpt(3)
- cimagl(3)
- getgrnam_r(3)
- remquol(3)
- swprintf(3)
- mbrtowc(3)
- fileno_unlocked(3)
- readlinkat(2)
- sigignore(3)
- strndupa(3)
- semctl(2)
- assert_perror(3)
- sendfile(2)
- shm_unlink(3)
- log(3)
- ungetc(3)
- erf(3)
- qfcvt(3)
- pthread_atfork(3)
- login(3)
- setservent(3)
- jrand48_r(3)
- wcsnlen(3)
- tcflow(3)
- pthread_cond_destroy(3)
- inl(2)
- srand48_r(3)
- erfcf(3)
- iconv(3)
- pthread_mutex_consistent_np(3)
- fabsl(3)
- pclose(3)
- nfsservctl(2)
- gai_error(3)
- wcsncmp(3)
- islower_l(3)
- iswctype(3)
- svc_register(3)
- arm_sync_file_range(2)
- strfry(3)
- strfromd(3)
- getttyent(3)
- rand(3)
- fchown32(2)
- ctime(3)
- fsetxattr(2)
- feupdateenv(3)
- random(3)
- getpwnam_r(3)
- sigwait(3)
- aio_fsync(3)
- mq_open(2)
- tanh(3)
- localtime_r(3)
- bsd_signal(3)
- strsep(3)
- mknodat(2)
- cexpf(3)
- cacosh(3)
- mbrlen(3)
- aio_cancel(3)
- mq_getsetattr(2)
- fdatasync(2)
- htons(3)
- sem_post(3)
- htobe16(3)
- vtimes(3)
- fgetpwent_r(3)
- getwchar_unlocked(3)
- mkdirat(2)
- dup(2)
- free_hugepages(2)
- feraiseexcept(3)
- lockf(3)
- userfaultfd(2)
- pthread_attr_setaffinity_np(3)
- memcpy(3)
- prlimit64(2)
- ferror(3)
- ldexpf(3)
- aio_return(3)
- adjtimex(2)
- execle(3)
- tailq(3)
- cabs(3)
- endaliasent(3)
- execvp(3)
- hasmntopt(3)
- if_freenameindex(3)
- signal(2)
- dn_comp(3)
- pthread_attr_getstack(3)
- ether_hostton(3)
- re_comp(3)
- cexp2l(3)
- getwd(3)
- llroundl(3)
- cos(3)
- pthread_mutex_consistent(3)
- isalpha_l(3)
- io_cancel(2)
- frexp(3)
- finitel(3)
- perf_event_open(2)
- pthread_exit(3)
- ioctl_console(2)
- timelocal(3)
- timersub(3)
- setresgid(2)
- semop(2)
- getgroups(2)
- envz_entry(3)
- xdr_u_long(3)
- seccomp(2)
- ftrylockfile(3)
- setuid(2)
- wcwidth(3)
- llround(3)
- cacoshf(3)
- pthread_attr_setschedpolicy(3)
- fgetpos(3)
- xdr_array(3)
- sprintf(3)
- wmemset(3)
- setcontext(3)
- copysignl(3)
- be64toh(3)
- matherr(3)
- hypotl(3)
- rawmemchr(3)
- fmodf(3)
- mount(2)
- mktime(3)
- stdarg(3)
- clnttcp_create(3)
- string(3)
- profil(3)
- clnt_perror(3)
- getpriority(2)
- regerror(3)
- clone2(2)
- getgid(2)
- pthread_spin_lock(3)
- iswblank(3)
- ftell(3)
- dup3(2)
- toascii(3)
- strncpy(3)
- mrand48_r(3)
- setstate(3)
- sigqueue(3)
- cpowf(3)
- setlogmask(3)
- sched_getcpu(3)
- htobe32(3)
- list(3)
- isdigit_l(3)
- chdir(2)
- fstat(2)
- pwritev2(2)
- get_thread_area(2)
- freelocale(3)
- acoshl(3)
- socketpair(2)
- scalbln(3)
- fpclassify(3)
- getpwnam(3)
- pthread_getcpuclockid(3)
- ioprio_get(2)
- strtok_r(3)
- exit_group(2)
- scalbnf(3)
- xdrrec_create(3)
- pthread_mutex_destroy(3)
- sqrt(3)
- dirname(3)
- exit(2)
- ulckpwdf(3)
- cargl(3)
- powerof2(3)
- simpleq(3)
- process_vm_writev(2)
- fdopendir(3)
- getpt(3)
- floorl(3)
- va_start(3)
- lcong48(3)
- strerror_l(3)
- xdrrec_eof(3)
- key_setsecret(3)
- lstat64(2)
- memfd_secret(2)
- sigreturn(2)
- casinhf(3)
- valloc(3)
- stat64(2)
- jn(3)
- sinl(3)
- pthread_testcancel(3)
- cfgetispeed(3)
- dup2(2)
- getnetent(3)
- pthread_setconcurrency(3)
- memccpy(3)
- rt_sigqueueinfo(2)
- ccosf(3)
- sincos(3)
- tcdrain(3)
- ccos(3)
- chmod(2)
- cacosf(3)
- lstat(2)
- pthread_spin_trylock(3)
- sigisemptyset(3)
- getrpcbyname(3)
- fpathconf(3)
- copysign(3)
- round(3)
- wmemchr(3)
- qfcvt_r(3)
- fattach(2)
- __fsetlocking(3)
- adjtime(3)
- makedev(3)
- des_crypt(3)
- iswspace(3)
- twalk(3)
- exec(3)
- link(2)
- fileno(3)
- endpwent(3)
- logb(3)
- wcscspn(3)
- console_ioctl(4)
- fgetpwent(3)
- setegid(2)
- clnt_destroy(3)
- getaddrinfo_a(3)
- svc_getargs(3)
- addmntent(3)
- globfree(3)
- islower(3)
- muntrace(3)
- clnt_pcreateerror(3)
- llrintl(3)
- clnt_control(3)
- fgetspent_r(3)
- strstr(3)
- putmsg(2)
- __fwritable(3)
- res_nsearch(3)
- fseeko(3)
- mq_timedreceive(3)
- log10(3)
- fexecve(3)
- gammaf(3)
- pthread_setschedparam(3)
- wcscpy(3)
- xdr_float(3)
- pthread_attr_setdetachstate(3)
- sem_wait(3)
- pow10l(3)
- re_exec(3)
- rand_r(3)
- putpmsg(2)
- getdelim(3)
- utimes(2)
- mq_close(3)
- setutent(3)
- creall(3)
- mq_send(3)
- telldir(3)
- powf(3)
- erfl(3)
- pthread_self(3)
- pselect6(2)
- unlocked_stdio(3)
- insw(2)
- cfsetspeed(3)
- argz_create(3)
- xdr_string(3)
- pthread_attr_getguardsize(3)
- finitef(3)
- setlocale(3)
- bcmp(3)
- fmtmsg(3)
- sendmsg(2)
- pthread_cleanup_push(3)
- inb_p(2)
- mmap64(3)
- getuid32(2)
- truncate(2)
- mlock2(2)
- fegetround(3)
- ugetrlimit(2)
- getprotobynumber_r(3)
- utmpxname(3)
- isinf(3)
- clearerr_unlocked(3)
- stime(2)
- nftw(3)
- duplocale(3)
- svcraw_create(3)
- svc_getcaller(3)
- ctanhl(3)
- cbrt(3)
- floorf(3)
- sethostid(3)
- sigemptyset(3)
- sigaltstack(2)
- mkfifo(3)
- lsearch(3)
- getservent_r(3)
- islessgreater(3)
- floor(3)
- argz_append(3)
- tzset(3)
- res_mkquery(3)
- fstatat(2)
- strchr(3)
- semtimedop(2)
- bindresvport(3)
- tcsetattr(3)
- warn(3)
- getservent(3)
- atanhl(3)
- tdelete(3)
- ynf(3)
- ether_ntoa_r(3)
- fesetenv(3)
- mq_timedsend(3)
- quotactl(2)
- init_module(2)
- rcmd(3)
- fenv(3)
- getutxid(3)
- pthread_mutexattr_getpshared(3)
- scalbnl(3)
- atan2l(3)
- argz_count(3)
- rpmatch(3)
- timerfd_gettime(2)
- ualarm(3)
- pthread_attr_init(3)
- vdprintf(3)
- pthread_cancel(3)
- fflush(3)
- setkey_r(3)
- mbstowcs(3)
- mremap(2)
- strcasestr(3)
- hcreate_r(3)
- siginterrupt(3)
- offsetof(3)
- atan(3)
- wctomb(3)
- getutent(3)
- significand(3)
- arm_fadvise64_64(2)
- dremf(3)
- wcswidth(3)
- syscall(2)
- rintf(3)
- bswap_64(3)
- pthread_attr_getschedparam(3)
- lroundf(3)
- timegm(3)
- posix_fadvise(2)
- getrlimit(2)
- svc_freeargs(3)
- xdr_enum(3)
- hcreate(3)
- ptrace(2)
- backtrace_symbols_fd(3)
- fetestexcept(3)
- ccosh(3)
- htole32(3)
- kexec_load(2)
- fallocate(2)
- timer_gettime(2)
- tgammaf(3)
- errno(3)
- sched_get_priority_max(2)
- xdr_getpos(3)
- vwprintf(3)
- ssetmask(2)
- ether_ntoa(3)
- waitpid(2)
- sched_getattr(2)
- inotify_init(2)
- fma(3)
- gnu_get_libc_version(3)
- svctcp_create(3)
- wcstombs(3)
- gethostname(2)
- strerror_r(3)
- sigismember(3)
- fgetws_unlocked(3)
- hash(3)
- circleq(3)
- getrpcbynumber_r(3)
- pthread_cond_timedwait(3)
- uname(2)
- fgetc_unlocked(3)
- mq_open(3)
- cosl(3)
- rewinddir(3)
- nextdown(3)
- longjmp(3)
- execv(3)
- iconv_open(3)
- xencrypt(3)
- ctermid(3)
- isgraph_l(3)
- move_pages(2)
- isunordered(3)
- msgsnd(2)
- rt_sigtimedwait(2)
- syncfs(2)
- mlockall(2)
- pthread_getschedparam(3)
- lsetxattr(2)
- getutid_r(3)
- log1pl(3)
- catanf(3)
- passwd2des(3)
- iconv_close(3)
- aligned_alloc(3)
- sched_setscheduler(2)
- gmtime(3)
- __free_hook(3)
- acoshf(3)
- mtrace(3)
- resolver(3)
- clog10f(3)
- sethostname(2)
- pthread_attr_setguardsize(3)
- tuxcall(2)
- atanh(3)
- ispunct_l(3)
- svcudp_bufcreate(3)
- ctanh(3)
- j1l(3)
- log10l(3)
- alloca(3)
- sigpending(2)
- nexttoward(3)
- isnormal(3)
- svc_getreq(3)
- putchar(3)
- getnetbyaddr(3)
- cpowl(3)
- get_kernel_syms(2)
- getutline_r(3)
- pthread_setaffinity_np(3)
- isnan(3)
- getprotoent(3)
- catclose(3)
- getsid(2)
- endrpcent(3)
- fts_close(3)
- gnu_dev_minor(3)
- ruserok_af(3)
- getutent_r(3)
- getegid(2)
- sgetmask(2)
- posix_memalign(3)
- atanf(3)
- unshare(2)
- lremovexattr(2)
- strncasecmp(3)
- endutent(3)
- updwtmpx(3)
- outsw(2)
- sched_getparam(2)
- setuid32(2)
- catgets(3)
- nextupl(3)
- openat(2)
- logout(3)
- free(3)
- setfsuid(2)
- getutline(3)
- svc_sendreply(3)
- fadvise64_64(2)
- cargf(3)
- __ppc_set_ppr_low(3)
- casinh(3)
- outb_p(2)
- fputwc(3)
- log10f(3)
- getnetgrent(3)
- fputws_unlocked(3)
- ffsl(3)
- endttyent(3)
- isgreater(3)
- sigmask(3)
- sgetspent_r(3)
- fmaxf(3)
- openlog(3)
- strncmp(3)
- closedir(3)
- rexec_af(3)
- exp2(3)
- mcheck(3)
- isalpha(3)
- pthread_mutex_init(3)
- catopen(3)
- clock_nanosleep(2)
- ioctl(2)
- remainder(3)
- olduname(2)
- getcpu(2)
- setns(2)
- asinhl(3)
- wcscasecmp(3)
- nearbyintl(3)
- atan2f(3)
- wctob(3)
- nextdownf(3)
- gmtime_r(3)
- fmal(3)
- setfsgid32(2)
- dlinfo(3)
- posix_spawnp(3)
- fgets_unlocked(3)
- major(3)
- fseek(3)
- xdr_callhdr(3)
- execve(2)
- exit(3)
- makecontext(3)
- sysctl(2)
- oldolduname(2)
- getgrouplist(3)
- pthread_getattr_np(3)
- ffs(3)
- sem_init(3)
- gcvt(3)
- fts_children(3)
- rt_sigreturn(2)
- mallinfo(3)
- insl(2)
- geteuid(2)
- signalfd(2)
- erfcl(3)
- sched_get_priority_min(2)
- sched_setaffinity(2)
- wcsrchr(3)
- xdr_reference(3)
- snprintf(3)
- delete_module(2)
- j0f(3)
- malloc_hook(3)
- casinf(3)
- y0f(3)
- endgrent(3)
- y1l(3)
- pthread_create(3)
- wcsncasecmp(3)
- pidfd_getfd(2)
- htobe64(3)
- _sysctl(2)
- lrand48_r(3)
- warnx(3)
- lgammaf_r(3)
- verrx(3)
- finit_module(2)
- gsignal(3)
- recvfrom(2)
- log2(3)
- fflush_unlocked(3)
- getaliasbyname_r(3)
- pthread_mutexattr_setrobust(3)
- getdirentries(3)
- getrpcbyname_r(3)
- ppoll(2)
- tmpfile(3)
- isupper_l(3)
- xdr_free(3)
- res_nquery(3)
- fts_open(3)
- shutdown(2)
- xdr_callmsg(3)
- coshl(3)
- ntp_gettimex(3)
- afs_syscall(2)
- be32toh(3)
- fchmodat(2)
- addseverity(3)
- pause(2)
- strcmp(3)
- mkostemps(3)
- wcsrtombs(3)
- scandir(3)
- __freadable(3)
- killpg(3)
- add_key(2)
- strcoll(3)
- migrate_pages(2)
- pthread_setattr_default_np(3)
- pthread_attr_setsigmask_np(3)
- sigabbrev_np(3)
- readdir(2)
- subpage_prot(2)
- strfromf(3)
- sysv_signal(3)
- gethostbyname2_r(3)
- outl_p(2)
- sync(2)
- pthread_attr_getinheritsched(3)
- socket(2)
- msgrcv(2)
- fgetws(3)
- pthread_cleanup_push_defer_np(3)
- getnetgrent_r(3)
- ynl(3)
- endservent(3)
- srand(3)
- endmntent(3)
- cbrtl(3)
- setitimer(2)
- pmap_rmtcall(3)
- svcerr_systemerr(3)
- fesetround(3)
- ilogbf(3)
- __fwriting(3)
- log1p(3)
- futimens(3)
- xdrrec_endofrecord(3)
- setreuid32(2)
- swab(3)
- pthread_spin_init(3)
- memchr(3)
- fminf(3)
- getipnodebyname(3)
- msgop(2)
- wait(2)
- ether_aton_r(3)
- open_wmemstream(3)
- xdr_bool(3)
- pthread_tryjoin_np(3)
- xdr_int(3)
- inet_net_ntop(3)
- fdimf(3)
- srand48(3)
- xdr_setpos(3)
- asinf(3)
- program_invocation_name(3)
- write(2)
- mkdtemp(3)
- pthread_cleanup_pop(3)
- ptsname_r(3)
- lgammal_r(3)
- pthread_attr_getstackaddr(3)
- authunix_create(3)
- getpmsg(2)
- ceill(3)
- cexp2f(3)
- kcmp(2)
- setup(2)
- err(3)
- sync_file_range2(2)
- getpid(2)
- wcsncat(3)
- envz_get(3)
- futimes(3)
- mincore(2)
- herror(3)
- ether_line(3)
- feholdexcept(3)
- fputc(3)
- keyctl(2)
- timer_delete(2)
- posix_spawn(3)
- faccessat2(2)
- setnetgrent(3)
- pwrite(2)
- aio_read(3)
- shmget(2)
- acosh(3)
- sigdelset(3)
- __ppc_get_timebase(3)
- __flbf(3)
- dladdr1(3)
- argz_create_sep(3)
- mblen(3)
- gethostent(3)
- pciconfig_iobase(2)
- recvmmsg(2)
- isprint_l(3)
- csqrtf(3)
- wcstoimax(3)
- hsearch_r(3)
- svcudp_create(3)
- setreuid(2)
- le16toh(3)
- name_to_handle_at(2)
- strftime_l(3)
- pthread_attr_setschedparam(3)
- eventfd(2)
- atanhf(3)
- pthread_setspecific(3)
- pthread_cond_init(3)
- acosl(3)
- llistxattr(2)
- fputwc_unlocked(3)
- scanf(3)
- getmntent_r(3)
- getchar(3)
- res_ninit(3)
- error_one_per_line(3)
- sigsetmask(3)
- putwchar(3)
- llroundf(3)
- rt_sigpending(2)
- send(2)
- wcsstr(3)
- log2l(3)
- fmod(3)
- va_copy(3)
- res_search(3)
- res_nsend(3)
- res_query(3)
- wait3(2)
- encrypt_r(3)
- system(3)
- close_range(2)
- ecvt_r(3)
- read(2)
- auth_destroy(3)
- realloc(3)
- pipe2(2)
- dn_expand(3)
- timerclear(3)
- get_avphys_pages(3)
- mbsnrtowcs(3)
- strtok(3)
- fwide(3)
- __ppc_get_timebase_freq(3)
- gai_suspend(3)
- stpcpy(3)
- lldiv(3)
- iswxdigit(3)
- posix_openpt(3)
- s390_pci_mmio_write(2)
- pthread_spin_destroy(3)
- callrpc(3)
- getifaddrs(3)
- aio_suspend(3)
- fread_unlocked(3)
- get_nprocs_conf(3)
- getuid(2)
- spu_run(2)
- termios(3)
- umask(2)
- csqrtl(3)
- register_printf_modifier(3)
- sem_trywait(3)
- tee(2)
- msync(2)
- mpool(3)
- setdomainname(2)
- fopencookie(3)
- nl_langinfo(3)
- sockatmark(3)
- getspent_r(3)
- casinhl(3)
- fdiml(3)
- ntohs(3)
- fgets(3)
- time(2)
- casinl(3)
- pthread_detach(3)
- seccomp_unotify(2)
apt-get install manpages-dev
Available languages:
en fr ruManual
seccomp
NOMBIBLIOTHĂQUE
SYNOPSIS
DESCRIPTION
Filtres
/proc interfaces
Enregistrement dâaudit des actions seccomp
VALEUR RENVOYĂE
ERREURS
STANDARDS
HISTORIQUE
NOTES
Gestion dâarchitecture pour le BPF seccomp
Avertissements
Détails BPF spécifiques à seccomp
EXEMPLES
Source du programme
VOIR AUSSI
TRADUCTION
NOM
seccomp - Agir sur lâĂ©tat de calcul sĂ©curisĂ© (Secure Computing State) du processus
BIBLIOTHĂQUE
BibliothĂšque C standard ( libc , -lc )
SYNOPSIS
#include
<linux/seccomp.h>
/* Définition des
constantes
SECCOMP_*
*/
#include <linux/filter.h>
/* Définition de
struct sock_fprog
*/
#include <linux/audit.h>
/* Définition des
constantes
AUDIT_*
*/
#include <linux/signal.h>
/* Définition des
constantes
SIG*
*/
#include <sys/ptrace.h>
/* Définition des
constantes
PTRACE_*
*/
#include <sys/syscall.h>
/* Définition des
constantes
SYS_*
*/
#include <unistd.h>
int
syscall(SYS_seccomp, unsigned int
opération
, unsigned int
flags
,
void *
args
);
Remarque : la glibc ne fournit pas dâenveloppe pour seccomp (), imposant lâutilisation de syscall (2).
DESCRIPTION
Lâappel systĂšme seccomp () agit sur lâĂ©tat de calcul sĂ©curisĂ© (seccomp) du processus appelant.
Actuellement,
Linux gĂšre les valeurs
dâ
opération
suivantes :
SECCOMP_SET_MODE_STRICT
Les seuls appels systĂšme que le thread appelant est autorisĂ© Ă faire sont read (2), write (2), _exit (2) (mais pas exit_group (2)) et sigreturn (2). Les autres appels systĂšme aboutissent Ă la fin du thread appelant ou Ă la fin du processus complet avec le signal SIGKILL quand il nây a quâun seul thread. Le mode de calcul sĂ©curisĂ© strict est utile pour les applications de traitement de nombres qui peuvent avoir besoin dâexĂ©cuter un code Ă octets non fiable, obtenu peut-ĂȘtre en lisant un tube ou un socket.
Remarquez que si le thread appelant ne peut plus appeler sigprocmask (2), il peut utiliser sigreturn (2) pour bloquer tous les signaux, sauf ceux provenant de SIGKILL et de SIGSTOP . Cela veut dire que alarm (2) (par exemple) nâest pas suffisant pour restreindre la durĂ©e dâexĂ©cution dâun processus. Pour terminer de maniĂšre fiable un processus, SIGKILL doit ĂȘtre utilisĂ©. On peut le faire en utilisant timer_create (2) avec SIGEV_SIGNAL et sigev_signo positionnĂ© Ă SIGKILL ou en utilisant setrlimit (2) pour positionner la limite ferme de RLIMIT_CPU .
Cette fonctionnalitĂ© nâest disponible que si le noyau a Ă©tĂ© construit avec lâoption CONFIG_SECCOMP activĂ©e.
La valeur de flags doit ĂȘtre de 0 et args doit ĂȘtre NULL.
Cette opĂ©ration est fonctionnellement identique Ă lâappel :
prctl(PR_SET_SECCOMP, SECCOMP_MODE_STRICT);
SECCOMP_SET_MODE_FILTER
Les appels systĂšme autorisĂ©s sont dĂ©finis par un pointeur vers un filtre Berkeley Packet (BPF) fourni Ă lâaide de args . Ce paramĂštre est un pointeur vers une struct sock_fprog ; il peut ĂȘtre conçu pour filtrer des appels systĂšme de votre choix ainsi que des paramĂštres dâappel systĂšme. Si le filtre nâest pas valable, seccomp () Ă©choue en renvoyant EINVAL dans errno .
Si fork (2) ou clone (2) est autorisĂ© par le filtre, les processus enfant seront contraints par les mĂȘmes filtres dâappel systĂšme que leur parent. Si execve (2) est autorisĂ©, les filtres existants seront prĂ©servĂ©s lors dâun appel Ă execve (2).
Pour utiliser lâopĂ©ration SECCOMP_SET_MODE_FILTER , soit le thread appelant doit avoir la capacitĂ© CAP_SYS_ADMIN dans son espace de noms utilisateur, soit il doit avoir dĂ©jĂ le bit no_new_privs dĂ©fini. Si ce bit nâa pas dĂ©jĂ Ă©tĂ© positionnĂ© par un ascendant du thread, le thread doit effectuer lâappel suivant :
prctl(PR_SET_NO_NEW_PRIVS, 1);
Sinon, lâopĂ©ration SECCOMP_SET_MODE_FILTER Ă©choue et renvoie EACCES dans errno . Cette exigence garantit quâun processus non privilĂ©giĂ© ne peut pas appliquer un filtre malveillant et appeler un programme set-user-ID ou avec dâautres privilĂšges en utilisant execve (2), compromettant ainsi le programme (un tel filtre malveillant pourrait, par exemple, conduire setuid (2) Ă essayer de dĂ©finir les identifiants utilisateur de lâappelant Ă des valeurs non nulles pour renvoyer plutĂŽt 0 sans faire dâappel systĂšme. Ainsi, le programme pourrait ĂȘtre bidouillĂ© pour garder les privilĂšges du super-utilisateur Ă des moments oĂč il est possible de lâinfluencer pour faire des choses dangereuses vu quâil nâa pas abandonnĂ© ses privilĂšges).
Si prctl (2) ou seccomp () est autorisĂ© par le filtre rattachĂ©, dâautres filtres peuvent ĂȘtre ajoutĂ©s. Cela augmentera le temps dâĂ©valuation mais permet dâautres rĂ©ductions de la surface dâattaque lors de lâexĂ©cution dâun thread.
LâopĂ©ration SECCOMP_SET_MODE_FILTER nâest disponible que si le noyau a Ă©tĂ© configurĂ© avec CONFIG_SECCOMP_FILTER .
Quand flags vaut 0 , cette opĂ©ration est fonctionnellement identique Ă lâappel :
prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, args);
Les
paramĂštres reconnus de
flags
sont :
SECCOMP_FILTER_FLAG_LOG
(depuis Linux 4.14)
Toutes les actions de renvoi des filtres, sauf SECCOMP_RET_ALLOW , doivent ĂȘtre journalisĂ©es. Un administrateur peut outrepasser cet attribut de filtre en empĂȘchant des actions spĂ©cifiques dâĂȘtre journalisĂ©es Ă lâaide du fichier /proc/sys/kernel/seccomp/actions_logged .
SECCOMP_FILTER_FLAG_NEW_LISTENER (depuis Linux 5.0)
AprĂšs une installation rĂ©ussie du programme de filtrage, renvoyer un nouveau descripteur de fichier de notification pour lâespace utilisateur. (Lâattribut close-on-exec est dĂ©fini pour le descripteur de fichier.) Quand le filtre renvoie SECCOMP_RET_USER_NOTIF , une notification sera envoyĂ©e Ă ce descripteur de fichier.
Pour un thread, au maximum un seul filtre de seccomp utilisant lâattribut SECCOMP_FILTER_FLAG_NEW_LISTENER peut ĂȘtre installĂ©.
Consultez seccomp_unotify (2) pour plus de détails.
SECCOMP_FILTER_FLAG_SPEC_ALLOW (depuis Linux 4.17)
Désactiver la mitigation Speculative Store Bypass.
SECCOMP_FILTER_FLAG_TSYNC
Lors de lâajout dâun filtre, synchroniser tous les autres threads du processus appelant avec la mĂȘme arborescence de filtres seccomp. Une « arborescence de filtres » est une liste ordonnĂ©e de filtres rattachĂ©e Ă un thread (le rattachement de filtres identiques dans des appels seccomp () distincts gĂ©nĂšre diffĂ©rents filtres depuis cette perspective).
Si aucun thread ne peut pas se synchroniser avec lâarborescence de filtres, lâappel ne rattachera pas le nouveau filtre seccomp et Ă©chouera en renvoyant le premier identifiant de thread qui nâa pas pu se synchroniser. La synchronisation Ă©chouera si un autre thread du mĂȘme processus est en SECCOMP_MODE_STRICT ou si des nouveaux filtres seccomp lui sont rattachĂ©s en propre, en dĂ©calage par rapport Ă lâarborescence de filtres du thread appelant.
SECCOMP_GET_ACTION_AVAIL (depuis Linux 4.14)
Tester pour savoir si une action est prise en charge par le noyau. Cette opĂ©ration peut aider Ă confirmer que le noyau connaĂźt lâaction de renvoi dâun filtre rĂ©cemment ajoutĂ© puisque le noyau traite toutes les actions inconnues comme des SECCOMP_RET_KILL_PROCESS .
La valeur de flags doit ĂȘtre de 0 et args doit ĂȘtre un pointeur vers une action de renvoi de filtre 32 bits non signĂ©.
SECCOMP_GET_NOTIF_SIZES (depuis Linux 5.O)
Obtenir la taille des structures de notification de lâespace utilisateur de seccomp. Comme ces structures peuvent Ă©voluer et croĂźtre avec le temps, cette commande peut ĂȘtre utilisĂ©e pour dĂ©terminer quelle quantitĂ© de mĂ©moire allouer pour envoyer et recevoir des notifications.
La valeur de flags doit ĂȘtre de 0 et args doit ĂȘtre un pointeur vers un struct seccomp_notif_sizes de la forme suivante :
struct
seccomp_notif_sizes
__u16 seccomp_notif; /* Taille de la structure de
notification */
__u16 seccomp_notif_resp; /* Taille de la structure de
réponse */
__u16 seccomp_data; /* Taille de 'struct seccomp_data' */
};
Consultez seccomp_unotify (2) pour plus de détails.
Filtres
Lors de lâajout dâun filtre Ă lâaide de SECCOMP_SET_MODE_FILTER , args pointe vers un programme de filtrage :
struct
sock_fprog {
unsigned short len; /* Nombre dâinstructions BPF */
struct sock_filter *filter; /* Pointeur vers le tableau
dâinstructions BPF */
};
Chaque programme doit contenir une ou plusieurs instructions BPFÂ :
struct
sock_filter { /* Filter block */
__u16 code; /* Code du filtre réel */
__u8 jt; /* Jump true (sauter le vrai) */
__u8 jf; /* Jump false (sauter le faux) */
__u32 k; /* Champ générique multiusages */
};
Lors de lâexĂ©cution des instructions, le programme BPF agit sur les informations de lâappel systĂšme qui sont rendues disponibles (câest-Ă -dire quâil utilise le mode dâadressage BPF_ABS ) en tant que tampon (en lecture seule) ayant la forme suivante :
struct
seccomp_data {
int nr; /* NumĂ©ro de lâappel systĂšme */
__u32 arch; /* Valeur AUDIT_ARCH_*
(voir <linux/audit.h>) */
__u64 instruction_pointer; /* pointeur vers
lâinstruction du processeur */
__u64 args[6]; /* JusquâĂ 6 paramĂštres
de lâappel systĂšme */
};
Comme la numĂ©rotation des appels systĂšme varie entre les architectures et comme certaines (comme x86-64) autorisent du code de lâespace utilisateur Ă utiliser les conventions de lâappelant dâautres architectures (et comme cette convention peut varier pendant la vie dâun processus qui utilise execve (2) pour exĂ©cuter des binaires qui utilisent diffĂ©rentes conventions), il est gĂ©nĂ©ralement nĂ©cessaire de vĂ©rifier la valeur du champ arch .
Il est fortement recommandĂ© dâutiliser une approche par liste dâautorisations autant que possible, parce quâune telle approche est plus robuste et plus simple. Une liste dâinterdictions devra ĂȘtre mise Ă jour Ă chaque fois quâun appel systĂšme dangereux sera ajoutĂ© (ou un attribut ou une option si elles font partie de la liste des interdictions) et il est souvent possible de modifier la reprĂ©sentation dâune valeur sans changer sa signification, conduisant Ă contourner la liste dâinterdictions. Voir aussi Mises en garde ci-dessous.
Le champ arch nâest pas unique pour toutes les conventions dâappelant. Les ABI x86-64 et x32 utilisent AUDIT_ARCH_X86_64 en tant que arch et elles fonctionnent sur les mĂȘmes processeurs. Au contraire, le masque __X32_SYSCALL_BIT est utilisĂ© sur le numĂ©ro dâappel systĂšme pour parler indĂ©pendamment aux deux ABI.
Cela veut dire quâune politique peut soit interdire tous les appels systĂšme avec __X32_SYSCALL_BIT , soit elle doit les reconnaĂźtre avec le positionnement ou pas de __X32_SYSCALL_BIT . Une liste des appels systĂšme Ă interdire qui sâappuie sur nr et qui ne contient pas de valeurs nr oĂč __X32_SYSCALL_BIT est positionnĂ© peut ĂȘtre contournĂ©e par un programme malveillant qui positionne __X32_SYSCALL_BIT .
En outre, les noyaux prĂ©cĂ©dant Linux 5.4 autorisaient Ă tort nr dans les intervalles 512â547 ainsi que les appels systĂšme non x32 correspondants reliĂ©s (opĂ©ration OU) avec __X32_SYSCALL_BIT . Par exemple, nr == 521 et nr == (101 | __X32_SYSCALL_BIT ) crĂ©eraient des appels ptrace (2) avec une sĂ©mantique potentiellement confondue entre x32 et x86_64 dans le noyau. Les politiques prĂ©vues pour fonctionner sur des noyaux antĂ©rieurs Ă Linux 5.4 doivent garantir quâelles interdisent ou quâelles gĂšrent correctement ces appels systĂšme. Sur Linux 5.4 et plus rĂ©cents, de tels appels systĂšme Ă©choueront avec une erreur ENOSYS sans rien faire.
Le champ instruction_pointer fournit lâadresse de lâinstruction en langage machine qui a effectuĂ© lâappel systĂšme. Cela pourrait ĂȘtre utile avec /proc/ pid /maps pour effectuer des vĂ©rifications Ă partir de la rĂ©gion (projection) du programme qui a fait lâappel systĂšme (il est probablement raisonnable de verrouiller les appels systĂšme mmap (2) et mprotect (2) pour empĂȘcher le programme de contourner de telles vĂ©rifications).
Lors de la vĂ©rification des valeurs de args , gardez en tĂȘte que les paramĂštres sont souvent tronquĂ©s silencieusement avant dâĂȘtre traitĂ©s mais aprĂšs la vĂ©rification seccomp. Cela arrive par exemple si lâABI i386 est utilisĂ©e sur un noyau x86-64 : bien que le noyau nâira normalement pas regarder au-delĂ des 32 bits les plus faibles des paramĂštres, les valeurs des registres 64 bits complets seront prĂ©sentes dans les donnĂ©es de seccomp. Un exemple moins surprenant est que si lâABI x86-64 est utilisĂ©e pour effectuer un appel systĂšme prenant un paramĂštre de type int , la moitiĂ© du registre du paramĂštre la plus significative est ignorĂ©e par lâappel systĂšme mais visible dans les donnĂ©es de seccomp.
Un filtre seccomp renvoie une valeur 32 bits en deux parties : la plus significative, de 16 bits (correspondant au masque défini par la constante SECCOMP_RET_ACTION_FULL ), contient une des valeurs « action » listée ci-dessous ; la moins significative, de 16 bits (définie par la constante SECCOMP_RET_DATA ), contient des « data » à associer à ce code de retour.
Si plusieurs filtres existent, ils sont tous exĂ©cutĂ©s dans lâordre inverse de leur apparition dans lâarbre des filtres â si bien que le filtre le plus rĂ©cemment installĂ© est exĂ©cutĂ© en premier) (remarquez que tous les filtres seront appelĂ©s mĂȘme si lâun des premiers appelĂ©s renvoie SECCOMP_RET_KILL , cela pour simplifier le code du noyau et pour fournir une petite accĂ©lĂ©ration dâexĂ©cution dâensembles de filtres en Ă©vitant la vĂ©rification de ce cas rare). La valeur renvoyĂ©e de lâĂ©valuation dâun appel systĂšme donnĂ© est la premiĂšre valeur vue de lâaction de plus haute prioritĂ© (ainsi que ses donnĂ©es associĂ©es) renvoyĂ©e par lâexĂ©cution de tous les filtres.
Dans
lâordre dĂ©croissant de prioritĂ©, les
valeurs dâaction qui peuvent ĂȘtre
renvoyées par un filtre seccomp sont :
SECCOMP_RET_KILL_PROCESS
(depuis Linux 4.14)
Cette valeur aboutit Ă la fin immĂ©diate du processus, avec un vidage mĂ©moire. Lâappel systĂšme nâest pas exĂ©cutĂ©. Contrairement Ă SECCOMP_RET_KILL_THREAD ci-dessous, tous les threads du groupe de threads sont terminĂ©s (pour un point sur les groupes de thread, voir la description de lâattribut CLONE_THREAD de clone (2)).
Le processus se termine parce que il a Ă©tĂ© tuĂ© par un signal SIGSYS . MĂȘme si un gestionnaire de signal a Ă©tĂ© enregistrĂ© pour SIGSYS , le gestionnaire sera ignorĂ© dans ce cas et le processus se termine toujours. Le processus parent qui attend ce processus (en utilisant waitpid (2) ou Ă©quivalent) reçoit wstatus qui indique que son enfant sâest terminĂ© suite Ă un signal SIGSYS .
SECCOMP_RET_KILL_THREAD (ou SECCOMP_RET_KILL )
Cette valeur provoque la fin immĂ©diate du thread qui a effectuĂ© lâappel systĂšme. Lâappel systĂšme nâest pas exĂ©cutĂ©. Les autres threads du mĂȘme groupe de threads continueront Ă sâexĂ©cuter.
Le thread sâest terminĂ© comme tuĂ© par un signal SIGSYS . Voir SECCOMP_RET_KILL_PROCESS ci-dessus.
Avant Linux 4.11, tout processus qui se terminait de cette maniĂšre ne gĂ©nĂ©rait pas de vidage mĂ©moire (bien que SIGSYS soit documentĂ© dans signal (7) pour avoir comme action par dĂ©faut celle de terminer avec un vidage mĂ©moire). Depuis Linux 4.11, un processus dâun seul thread crĂ©era un vidage mĂ©moire sâil se termine dans ce cadre.
Avec lâapparition de SECCOMP_RET_KILL_PROCESS dans Linux 4.14, SECCOMP_RET_KILL_THREAD a Ă©tĂ© ajoutĂ© comme synonyme de SECCOMP_RET_KILL , afin de distinguer plus clairement les deux actions.
Remarque : lâutilisation de SECCOMP_RET_KILL_THREAD pour tuer un thread unique dâun processus de plusieurs threads va probablement mettre le processus dans un Ă©tat incohĂ©rent et corrompre pour toujours son Ă©tat.
SECCOMP_RET_TRAP
Cette valeur fait envoyer par le noyau un signal SIGSYS adressĂ© au thread dĂ©clencheur (lâappel systĂšme nâest pas exĂ©cutĂ©). Divers champs seront positionnĂ©s dans la structure siginfo_t (voir sigaction (2)) associĂ©e au signal :
|
- |
si_signo contiendra SIGSYS . |
||
|
- |
si_call_addr affichera lâadresse de lâinstruction de lâappel systĂšme. |
||
|
- |
si_syscall et si_arch indiqueront lâappel systĂšme qui a Ă©tĂ© tentĂ©. |
||
|
- |
si_code contiendra SYS_SECCOMP . |
||
|
- |
si_errno contiendra la partie SECCOMP_RET_DATA du code de retour du filtre. |
Le compteur du programme sera arrĂȘtĂ© comme si lâappel systĂšme a Ă©tĂ© fait (câest-Ă -dire que le compteur du programme ne pointera pas vers lâinstruction de lâappel systĂšme). Le registre du code de retour contiendra une valeur dĂ©pendante de lâarchitecture ; en cas de relance de lâexĂ©cution, positionnez-la sur quelque chose adaptĂ© Ă lâappel systĂšme (la dĂ©pendance de lâarchitecture provient du fait que son remplacement par ENOSYS Ă©craserait des informations utiles).
SECCOMP_RET_ERRNO
Cette valeur fait passer la partie SECCOMP_RET_DATA du code de retour du filtre Ă lâespace utilisateur en tant que valeur errno sans exĂ©cuter lâappel systĂšme.
SECCOMP_RET_USER_NOTIF (depuis Linux 5.0)
Faire suivre lâappel systĂšme Ă un processus de superviseur attachĂ© de lâespace utilisateur attachĂ© pour permettre Ă ce processus de dĂ©cider quoi faire de lâappel systĂšme. Si il nây a pas de superviseur attachĂ© (soit parce que le filtre nâa pas Ă©tĂ© installĂ© avec lâattribut SECCOMP_FILTER_FLAG_NEW_LISTENER ou parce que le descripteur de fichier Ă©tait fermĂ©), le filtre renvoie ENOSYS (câest similaire Ă ce qui se produit quand un filtre renvoie SECCOMP_RET_TRACE et quâil nây a pas dâobservateur). Consultez seccomp_unotify (2) pour plus de dĂ©tails.
Remarquez que le processus de superviseur ne sera pas notifiĂ© si un autre filtre renvoie une valeur dâaction ayant une prioritĂ© supĂ©rieure Ă SECCOMP_RET_USER_NOTIF .
SECCOMP_RET_TRACE
Quand cette valeur est renvoyĂ©e, le noyau essaiera de notifier Ă un observateur basĂ© sur ptrace (2) avant dâexĂ©cuter lâappel systĂšme. Si aucun observateur nâest prĂ©sent, lâappel systĂšme nâest pas exĂ©cutĂ© et renvoie un Ă©chec en positionnant errno sur ENOSYS .
Un observateur sera notifiĂ© sâil demande PTRACE_O_TRACESECCOMP en utilisant ptrace(PTRACE_SETOPTIONS) . Il sera notifiĂ© dâun PTRACE_EVENT_SECCOMP et la partie SECCOMP_RET_DATA du code de retour du filtre sera mise Ă la disposition de lâobservateur Ă lâaide de PTRACE_GETEVENTMSG .
Lâobservateur peut ignorer lâappel systĂšme en modifiant le numĂ©ro de lâappel systĂšme Ă -1 . Autrement, lâobservateur peut modifier lâappel systĂšme demandĂ© en le passant Ă un numĂ©ro dâappel systĂšme valable. Si lâobservateur demande Ă ignorer lâappel systĂšme, ce dernier renverra la valeur que lâobservateur place dans le registre du code de retour.
Avant Linux 4.8, la vĂ©rification seccomp ne sera pas refaite aprĂšs que lâobservateur ait reçu une notification (cela signifie que sur les anciens noyaux, les conteneurs basĂ©s sur seccomp ne doivent pas autoriser lâutilisation de ptrace (2) â mĂȘme sur dâautres processus encapsulĂ©s â sans une prudence extrĂȘme ; les ptracers peuvent utiliser ce mĂ©canisme pour sortir dâun conteneur seccomp).
Remarquez que le processus dâun observateur ne sera pas notifiĂ© si un autre filtre renvoie une valeur dâaction ayant une prioritĂ© supĂ©rieure Ă SECCOMP_RET_TRACE .
SECCOMP_RET_LOG (depuis Linux 4.14)
Cette valeur fait exĂ©cuter lâappel systĂšme aprĂšs lâenregistrement de lâaction de retour du filtre. Un administrateur peut supplanter la journalisation de cette action Ă lâaide du fichier /proc/sys/kernel/seccomp/actions_logged .
SECCOMP_RET_ALLOW
Cette valeur provoque lâexĂ©cution de lâappel systĂšme.
Si on indique un code dâaction diffĂ©rent de ceux ci-dessus, lâaction de filtre est traitĂ©e soit comme un SECCOMP_RET_KILL_PROCESS (depuis Linux 4.14), soit comme un SECCOMP_RET_KILL_THREAD (dans Linux 4.13 et antĂ©rieurs).
/proc interfaces
Les fichiers du
répertoire
/proc/sys/kernel/seccomp
offrent
des informations et des configurations seccomp
supplémentaires :
actions_avail
(depuis Linux 4.14)
Une liste ordonnĂ©e en lecture seule dâactions de renvoi de filtre seccomp sous la forme dâune chaĂźne. Lâordre, de gauche Ă droite, est dĂ©croissant pour la prioritĂ©. La liste reprĂ©sente lâensemble des actions de renvoi de filtre seccomp gĂ©rĂ©es par le noyau.
actions_logged (depuis Linux 4.14)
Une liste ordonnĂ©e en lecture-Ă©criture dâactions de renvoi de filtre seccomp autorisĂ©es pour la journalisation. Les Ă©critures dans le fichier nâont pas besoin dâĂȘtre ordonnĂ©es, mais les lectures se feront dans le mĂȘme ordre que pour actions_avail .
Il est important de remarquer que la valeur de actions_logged nâempĂȘche pas certaines actions de renvoi de filtre dâĂȘtre enregistrĂ©es quand le sous-systĂšme dâaudit est configurĂ© pour auditer une tĂąche. Si lâaction nâest pas retrouvĂ©e dans le fichier actions_logged , la dĂ©cision finale dâauditer lâaction de cette tĂąche revient au sous-systĂšme dâaudit pour toutes les actions de renvoi de filtre autres que SECCOMP_RET_ALLOW .
La chaĂźne « allow » nâest pas acceptĂ©e dans le fichier actions_logged car il nâest pas possible dâenregistrer les actions SECCOMP_RET_ALLOW . Essayer dâĂ©crire « allow » dans le fichier Ă©chouera avec lâerreur EINVAL .
Enregistrement dâaudit des actions seccomp
Depuis Linux 4.14, le noyau offre la possibilitĂ© dâenregistrer les actions renvoyĂ©es par des filtres seccomp dans le compte-rendu dâaudit. Le noyau prend la dĂ©cision dâenregistrer une action Ă partir du type dâaction, de sa prĂ©sence dans le fichier actions_logged et de lâactivation de lâaudit du noyau (par exemple avec lâoption dâamorçage du noyau audit=1 ). Les rĂšgles sont les suivantes :
|
- |
Si lâaction est SECCOMP_RET_ALLOW , lâaction nâest pas enregistrĂ©e. |
||
|
- |
Sinon, si lâaction est SECCOMP_RET_KILL_PROCESS ou SECCOMP_RET_KILL_THREAD et si elle apparaĂźt dans le fichier actions_logged , lâaction est enregistrĂ©e. |
||
|
- |
Sinon, si le filtre a demandĂ© lâenregistrement (lâattribut SECCOMP_FILTER_FLAG_LOG ) et si elle apparaĂźt dans le fichier actions_logged , lâaction est enregistrĂ©e. |
||
|
- |
Sinon, si lâaudit du noyau est activĂ© et si le processus doit ĂȘtre auditĂ© ( autrace (8)), lâaction est enregistrĂ©e. |
||
|
- |
Sinon, lâaction nâest pas enregistrĂ©e. |
VALEUR RENVOYĂE
En cas de succĂšs, seccomp () renvoie 0 . En cas dâerreur, si SECCOMP_FILTER_FLAG_TSYNC a Ă©tĂ© utilisĂ©, le code de retour est lâidentifiant du thread Ă lâorigine de lâĂ©chec de la synchronisation (cet identifiant est un identifiant de thread du noyau du type renvoyĂ© par clone (2) et gettid (2)). Si une autre erreur arrive, -1 est renvoyĂ© et errno est positionnĂ© pour indiquer lâerreur.
ERREURS
seccomp () peut échouer pour les raisons suivantes :
|
EACCES |
Lâappelant nâavait pas la capacitĂ© CAP_SYS_ADMIN dans son espace de noms utilisateur ou nâavait pas positionnĂ© no_new_privs avant dâutiliser SECCOMP_SET_MODE_FILTER . |
||
|
EBUSY |
Pendant lâinstallation dâun nouveau filtre, lâattribut SECCOMP_FILTER_FLAG_NEW_LISTENER a Ă©tĂ© indiquĂ©, mais un filtre prĂ©cĂ©dent a dĂ©jĂ Ă©tĂ© installĂ© avec cet attribut. |
||
|
EFAULT |
args nâĂ©tait pas une adresse valable. |
||
|
EINVAL |
Lâ opĂ©ration est inconnue ou nâest pas prise en charge par cette version ou cette configuration du noyau. |
||
|
EINVAL |
Les flags spĂ©cifiĂ©s ne sont pas valables pour lâ opĂ©ration donnĂ©e. |
||
|
EINVAL |
Lâ opĂ©ration comprenait BPF_ABS , mais la position indiquĂ©e nâĂ©tait pas alignĂ©e sur une limite 32 bits ou elle dĂ©passait sizeof(struct seccomp_data) . |
||
|
EINVAL |
Un mode de calcul sĂ©curisĂ© a dĂ©jĂ Ă©tĂ© dĂ©fini et lâ opĂ©ration diffĂšre du paramĂ©trage existant. |
||
|
EINVAL |
opĂ©ration indiquait SECCOMP_SET_MODE_FILTER mais le programme de filtre vers lequel pointait args nâĂ©tait pas valable ou sa longueur Ă©tait de zĂ©ro ou dĂ©passait BPF_MAXINSNS instructions (4096). |
||
|
ENOMEM |
Plus assez de mémoire. |
||
|
ENOMEM |
La taille totale de tous les programmes de filtre rattachĂ©s au thread appelant dĂ©passerait MAX_INSNS_PER_PATH instructions (32768). Remarquez quâafin de calculer cette limite, chaque programme de filtre dĂ©jĂ existant intĂšgre une pĂ©nalitĂ© de dĂ©passement de 4 instructions. |
EOPNOTSUPP
opĂ©ration indiquait SECCOMP_GET_ACTION_AVAIL mais le noyau ne gĂšre pas lâaction de renvoi de filtre indiquĂ©e par args .
|
ESRCH |
Un autre thread a provoquĂ© un Ă©chec pendant la synchronisation, mais son identifiant nâa pas pu ĂȘtre dĂ©terminĂ©. |
STANDARDS
Linux.
HISTORIQUE
Linux 3.17.
NOTES
Au lieu de coder Ă la main des filtres seccomp comme dĂ©montrĂ© dans lâexemple ci-dessous, vous pourriez prĂ©fĂ©rer utiliser la bibliothĂšque libseccomp qui fournit une interface de gĂ©nĂ©ration de filtres seccomp.
Le champ Seccomp du fichier /proc/ pid /status offre une méthode de visualisation du mode seccomp du processus ; voir proc (5).
seccomp () fournit un sur-ensemble de fonctionnalitĂ©s de lâopĂ©ration PR_SET_SECCOMP de prctl (2) (qui ne prend pas en charge les flags ).
Depuis Linux 4.4, lâopĂ©ration PTRACE_SECCOMP_GET_FILTER de ptrace (2) peut ĂȘtre utilisĂ©e pour obtenir les filtres seccomp dâun processus.
Gestion dâarchitecture pour le BPF seccomp
La gestion dâarchitecture pour le filtrage de BPF seccomp est disponible sur les architectures suivantes :
|
- |
x86-64, i386, x32 (depuis Linux 3.5) |
|||
|
- |
ARM (depuis Linux 3.8) |
|||
|
- |
s390 (depuis Linux 3.8) |
|||
|
- |
MIPS (depuis Linux 3.16) |
|||
|
- |
ARM-64 (depuis Linux 3.19) |
|||
|
- |
PowerPC (depuis Linux 4.3) |
|||
|
- |
Tile (depuis Linux 4.3) |
|||
|
- |
PA-RISC (depuis Linux 4.6) |
Avertissements
Il y a beaucoup de subtilitĂ©s Ă prendre en compte lorsquâon applique des filtres seccomp Ă un programme, notamment :
|
- |
Certains appels systĂšme traditionnels ont des implĂ©mentations dans lâespace utilisateur dans le vdso (7) de nombreuses architectures. Parmi les exemples remarquables, se trouvent clock_gettime (2), gettimeofday (2) et time (2). Sur de telles architectures, le filtrage seccomp de ces appels systĂšme sera sans effet (il y a cependant des cas oĂč les implĂ©mentations vdso (7) se rabattent sur le vĂ©ritable appel systĂšme, alors les filtres seccomp verraient lâappel systĂšme). |
||
|
- |
Le filtrage seccomp sâappuie sur les numĂ©ros dâappel systĂšme. Cependant, les applications nâappellent gĂ©nĂ©ralement pas directement les appels systĂšme, mais plutĂŽt les fonctions enveloppe de la bibliothĂšque C qui appellent Ă leur tour les appels systĂšme. Par consĂ©quent, vous devez garder en tĂȘte ce qui suit : |
-
|
Les enveloppes de la glibc pour certains appels systĂšme traditionnels peuvent utiliser des appels systĂšme ayant des noms diffĂ©rents dans le noyau. Par exemple, la fonction enveloppe exit (2) utilise en fait lâappel systĂšme exit_group (2) et la fonction fork (2) utilise en rĂ©alitĂ© les appels clone (2). |
|||
|
- |
Le comportement des fonctions enveloppe peut changer en fonction des architectures, selon la plage dâappels systĂšme fournie sur ces architectures. Autrement dit, la mĂȘme fonction enveloppe peut appeler diffĂ©rents appels systĂšme selon les architectures. |
||
|
- |
Enfin, le comportement des fonctions enveloppe peut changer selon les versions de la glibc. Par exemple, dans dâanciennes versions, la fonction enveloppe de la glibc de open (2) appelait lâappel systĂšme du mĂȘme nom, mais Ă partir de la 2.26, lâimplĂ©mentation est passĂ©e Ă lâappel openat (2) sur toutes les architectures. |
La consĂ©quence des points ci-dessus est quâil pourrait ĂȘtre nĂ©cessaire de filtrer un appel systĂšme autre que celui prĂ©vu. Plusieurs pages de manuel de la section 2 donnent des dĂ©tails utiles sur les diffĂ©rences entre les fonctions enveloppe et les appels systĂšme sous-jacents dans les sous-sections intitulĂ©es DiffĂ©rences entre le noyau et la bibliothĂšque C .
En outre, remarquez que lâapplication de filtres seccomp risque mĂȘme de provoquer des bogues dans une application, quand les filtres provoquent des Ă©checs inattendus dâopĂ©rations lĂ©gitimes que lâapplication a besoin dâeffectuer. De tels bogues pourraient ne pas ĂȘtre facilement identifiĂ©s lors dâun test des filtres seccomp sâils se produisent Ă des endroits du code rarement utilisĂ©s.
Détails BPF spécifiques à seccomp
Remarquez que les détails BPF suivants sont spécifiques aux filtres seccomp :
|
- |
Les modificateurs de taille BPF_H et BPF_B ne sont pas pris en charge : toutes les opérations doivent charger et stocker des mots (4 octets) ( BPF_W ). |
||
|
- |
Pour accĂ©der au contenu du tampon seccomp_data , utilisez le modificateur du mode dâadressage BPF_ABS . |
||
|
- |
Le modificateur du mode dâadressage BPF_LEN produit un opĂ©rande de mode immĂ©diatement dont la valeur est la taille du tampon seccomp_data . |
EXEMPLES
Le programme ci-dessous accepte quatre paramĂštres ou plus. Les trois premiers sont un numĂ©ro dâappel systĂšme, un identifiant numĂ©rique dâarchitecture et un numĂ©ro dâerreur. Le programme utilise ces valeurs pour construire un filtre BPF utilisĂ© lors de lâexĂ©cution pour effectuer les vĂ©rifications suivantes :
|
- |
Si le programme ne tourne pas sur lâarchitecture indiquĂ©e, le filtre BPF fait Ă©chouer les appels systĂšme avec lâerreur ENOSYS . |
||
|
- |
Si le programme essaie dâexĂ©cuter lâappel systĂšme ayant le numĂ©ro indiquĂ©, le filtre BPF fait Ă©chouer lâappel systĂšme en positionnant errno sur le numĂ©ro dâerreur indiquĂ©. |
Les autres paramĂštres de la ligne de commande indiquent le chemin et les paramĂštres supplĂ©mentaires dâun programme que notre exemple doit essayer dâexĂ©cuter en utilisant execv (3) (une fonction de bibliothĂšque qui utilise lâappel systĂšme execve (2)). Certains exemples dâexĂ©cution du programme sont prĂ©sentĂ©s ci-dessous.
Tout dâabord, on affiche lâarchitecture sur laquelle on est (x86-64) puis on construit une fonction dâinterprĂ©teur qui cherche les numĂ©ros dâappels systĂšme sur cette architecture :
$
uname
-m
x86_64
$
syscall_nr() { cat
/usr/src/linux/arch/x86/syscalls/syscall_64.tbl | \ awk '$2
!= "x32" && $3 == "'$1'" { print
$1 }' }
Quand le filtre BPF rejette un appel systĂšme (cas n° 2 ci-dessus), il fait Ă©chouer lâappel systĂšme avec le numĂ©ro dâerreur indiquĂ© sur la ligne de commande. Dans les exemples prĂ©sentĂ©s ici, nous utiliserons le numĂ©ro dâerreur 99 :
$
errno
99
EADDRNOTAVAIL 99 Ne peut pas affecter lâadresse
demandée
Dans lâexemple suivant, on essaie dâexĂ©cuter la commande whoami (1), mais le filtre BPF rejette lâappel systĂšme execve (2), donc la commande nâest mĂȘme pas exĂ©cutĂ©e :
$
syscall_nr
execve
59
$
./a.out
Utilisation : ./a.out <syscall_nr> <arch>
<errno> <prog> [<args>]
Astuce pour <arch>Â : AUDIT_ARCH_I386: 0x40000003
AUDIT_ARCH_X86_64Â : 0xC000003E
$
./a.out 59 0xC000003E 99 /bin/whoami
execv : Ne peut pas affecter lâadresse
demandée
Dans le prochain exemple, le filtre BPF rejette lâappel systĂšme write (2) pour que, mĂȘme si elle a pu dĂ©marrer, la commande whoami (1) ne puisse pas Ă©crire de sortie :
$
syscall_nr
write
1
$
./a.out 1 0xC000003E 99 /bin/whoami
Dans le dernier exemple, le filtre BPF rejette un appel systĂšme qui nâest pas utilisĂ© par la commande whoami (1), elle peut donc sâexĂ©cuter et produire une sortie :
$
syscall_nr
preadv
295
$
./a.out 295 0xC000003E 99 /bin/whoami
cecilia
Source du programme
#include
<linux/audit.h>
#include <linux/filter.h>
#include <linux/seccomp.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/prctl.h>
#include <sys/syscall.h>
#include <unistd.h>
#define X32_SYSCALL_BIT 0x40000000
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
static int
install_filter(int syscall_nr, unsigned int t_arch, int
f_errno)
{
unsigned int upper_nr_limit = 0xffffffff;
/* On suppose que AUDIT_ARCH_X86_64 renvoie Ă
lâABI x86-64 normale
(dans lâABI x32, tous les appels systĂšme ont le
bit 30 positionné
dans le champ 'nr', donc les numéros sont
>= X32_SYSCALL_BIT). */
if (t_arch == AUDIT_ARCH_X86_64)
upper_nr_limit = X32_SYSCALL_BIT - 1;
struct sock_filter filter[] = {
/* [0] Charger lâarchitecture depuis le tampon
'seccomp_data'
dans lâaccumulateur. */
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
(offsetof(struct seccomp_data, arch))),
/* [1] Avancer de 5 instructions si lâarchitecture ne
correspond pas Ă 't_arch'. */
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, t_arch, 0, 5),
/* [2] Charger le numĂ©ro dâappel systĂšme
depuis le tampon
'seccomp_data' dans lâaccumulateur. */
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
(offsetof(struct seccomp_data, nr))),
/* [3] VĂ©rifier lâABI - nĂ©cessaire
seulement pour x86-64 si on
utilise une liste dâinterdictions. Utiliser BPF_JGT au
lieu de
vérifier par rapport au masque de bits pour ne pas
devoir
recharger le numĂ©ro dâappel systĂšme. */
BPF_JUMP(BPF_JMP | BPF_JGT | BPF_K, upper_nr_limit, 3, 0),
/* [4] Avancer dâune instruction si le numĂ©ro
dâappel systĂšme
ne correspond pas Ă 'syscall_nr'. */
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, syscall_nr, 0, 1),
/* [5] Architecture et appel systĂšme correspondants :
ne pas
exĂ©cuter lâappel systĂšme et renvoyer
'f_errno' dans
'errno'. */
BPF_STMT(BPF_RET | BPF_K,
SECCOMP_RET_ERRNO | (f_errno & SECCOMP_RET_DATA)),
/* [6] Cible du numĂ©ro dâappel systĂšme
inadéquate :
autoriser dâautres appels systĂšme. */
BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_ALLOW),
/* [7] Cible de lâarchitecture
inadéquate : tuer le processus. */
BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS),
};
struct sock_fprog prog = {
.len = ARRAY_SIZE(filter),
.filter = filter,
};
if (syscall(SYS_seccomp, SECCOMP_SET_MODE_FILTER, 0,
&prog)) {
perror("seccomp");
return 1;
}
return 0;
}
int
main(int argc, char *argv[])
{
if (argc < 5) {
fprintf(stderr, "Utilisation : "
"%s <syscall_nr> <arch> <errno>
<prog> [<args>]\n"
"Astuce pour <arch> : AUDIT_ARCH_I386:
0x%X\n"
" AUDIT_ARCH_X86_64: 0x%X\n"
"\n", argv[0], AUDIT_ARCH_I386,
AUDIT_ARCH_X86_64);
exit(EXIT_FAILURE);
}
if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)) {
perror("prctl");
exit(EXIT_FAILURE);
}
if (install_filter(strtol(argv[1], NULL, 0),
strtoul(argv[2], NULL, 0),
strtol(argv[3], NULL, 0)))
exit(EXIT_FAILURE);
execv(argv[4], &argv[4]);
perror("execv");
exit(EXIT_FAILURE);
}
VOIR AUSSI
bpfc (1), strace (1), bpf (2), prctl (2), ptrace (2), seccomp_unotify (2), sigaction (2), proc (5), signal (7), socket (7)
Plusieurs pages de la bibliothÚque libseccomp , dont : scmp_sys_resolver (1), seccomp_export_bpf (3), seccomp_init (3), seccomp_load (3) et seccomp_rule_add (3).
Les fichiers Documentation/networking/filter.txt et Documentation/userspace-api/seccomp_filter.rst des sources du noyau (ou Documentation/prctl/seccomp_filter.txt avant Linux 4.13).
McCanne, S. et Jacobson, V. (1992) The BSD Packet Filter : une nouvelle architecture de captation de paquets au niveau utilisateur , colloque de la confĂ©rence USENIX Ă lâhiver 1993 http://www.tcpdump.org/papers/bpf-usenix93.pdf
TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Jean-Philippe MENGUAL <jpmengual@debian.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
Cette traduction est une documentation libre ; veuillez vous reporter Ă la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il nây a aucune RESPONSABILITĂ LĂGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .