Expand description
Syscall routing: which numbers go where, and the handlers for each tier.
Modules§
- direct
- Handlers for the syscalls that take a ptrace stop when ptrace is available, served through user notification when it is not.
- notify
- Handlers for syscalls answered through seccomp user notification.
- nr
- x86_64 syscall numbers used by the filter and the handlers.
- traced
- Handlers for syscalls that take a ptrace stop: the path (or socket address) is rewritten in the tracee’s memory and the syscall proceeds.
Constants§
- CLONE_
NEWNS_ FLAGS CLONE_NEW*bits ofclone,clone3andunshareflags.- DUMPABLE_
SYSCALLS - Syscalls whose dumpable-flag operations go to the listener.
- FAKE_
ROOT_ SYSCALLS - Syscalls added to the notify tier by
-0: identity queries answered as root, identity changes accepted, descriptor ownership changes forgiven. - NAMESPACE_
FLAG_ SYSCALLS - Syscalls whose namespace flags are refused with
EPERMby the filter itself, as a default container refuses them: a tracee in a mount namespace of its own could not be served by a supervisor that does the filesystem work in its own.clone3carries its flags in memory and is inspected by a handler instead;setnsis refused outright. - NOTIFY_
SYSCALLS - Syscalls answered by the supervisor through user notification.
- NO_
PTRACE_ SYSCALLS - Syscalls served through notification instead of a ptrace stop when
there is no ptrace: the trace tier plus
fchdir(the working directory is virtual then) and theclonefamily (the child’s state is snapshotted at the fork). - REFUSED_
SYSCALLS - Syscalls refused with
EPERMunconditionally. - TRACE_
SYSCALLS - Syscalls that take a ptrace stop so their arguments can be edited in place.