The correct syntax for nsenter is BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3) multi-call binary. Usage: nsenter [OPTIONS] [PROG [ARGS]] -t,--target PID Target process to get namespaces from -m,--mount[=FILE] Enter mount namespace -u,--uts[=FILE] Enter UTS namespace (hostname etc) -i,--ipc[=FILE] Enter System V IPC namespace -n,--net[=FILE] Enter network namespace -p,--pid[=FILE] Enter pid namespace -U,--user[=FILE] Enter user namespace -S,--setuid UID Set uid in entered namespace -G,--setgid GID Set gid in entered namespace --preserve-credentials Don't touch uids or gids -r,--root[=DIR] Set root directory -w,--wd[=DIR] Set working directory -F,--no-fork Don't fork before exec'ing PROG However, running `busybox nsenter -t` opens a shell in the current namespace and `busybox nsenter -t $$` says `nsenter: can't execute '(my pid)': No such file or directory`. On the util-linux of my ubuntu system, `busybox nsenter -t` fails with incorrect arguments and the latter command succeeds and changes namespace, as expected. I have checked this and it exists both on arm64 Android and amd64 (both precompiled binaries from busybox.net). This makes it impossible to use nsenter, as arguments cannot be passed correctly.
Sorry, just found this patch on git. https://git.busybox.net/busybox/commit/util-linux/nsenter.c?h=1_29_stable&id=254e47372f77ea1070be6dbb44b5c45770115a07