| #!/usr/bin/env bash |
| |
| set -e |
| set -u |
| set -o pipefail |
| |
| root="${1:?Usage $0 container-root}" |
| mkdir -p "$root" |
| mkdir "$root/bin" |
| cp $(type -P busybox) "$root/bin" |
| |
| mkdir -p "$root/usr/lib" |
| touch "$root/usr/lib/os-release" |
| |
| ln -s busybox "$root/bin/sh" |
| ln -s busybox "$root/bin/cat" |
| ln -s busybox "$root/bin/tr" |
| ln -s busybox "$root/bin/ps" |
| ln -s busybox "$root/bin/ip" |
| |
| mkdir -p "$root/sbin" |
| cat <<'EOF' >"$root/sbin/init" |
| #!/bin/sh |
| |
| printf "ps aufx:\n" |
| ps aufx |
| |
| printf "/proc/1/cmdline:\n" |
| printf "%s\n\n" "$(tr '\0' ' ' </proc/1/cmdline)" |
| |
| printf "/proc/1/environ:\n" |
| printf "%s\n\n" "$(tr '\0' '\n' </proc/1/environ)" |
| |
| printf "/proc/1/mountinfo:\n" |
| cat /proc/self/mountinfo |
| printf "\n" |
| |
| printf "/proc/1/cgroup:\n" |
| printf "%s\n\n" "$(cat /proc/1/cgroup)" |
| |
| printf "/proc/1/uid_map:\n" |
| printf "%s\n\n" "$(cat /proc/1/uid_map)" |
| |
| printf "/proc/1/setgroups:\n" |
| printf "%s\n\n" "$(cat /proc/1/setgroups)" |
| |
| printf "/proc/1/gid_map:\n" |
| printf "%s\n\n" "$(cat /proc/1/gid_map)" |
| |
| printf "ip link:\n" |
| ip link |
| EOF |
| chmod +x "$root/sbin/init" |