]>
Commit | Line | Data |
---|---|---|
ff12a795 | 1 | #!/usr/bin/env bash |
c7934185 EV |
2 | |
3 | set -e | |
4 | set -u | |
5 | set -o pipefail | |
6 | ||
7 | root="${1:?Usage $0 container-root}" | |
8 | mkdir -p "$root" | |
9 | mkdir "$root/bin" | |
10 | cp $(type -P busybox) "$root/bin" | |
11 | ||
491b736a ER |
12 | ID_LIKE=$(awk -F= '$1=="ID_LIKE" { print $2 ;}' /etc/os-release) |
13 | if [[ "$ID_LIKE" = *"suse"* ]]; then | |
14 | mkdir -p "$root/lib" | |
15 | mkdir -p "$root/lib64" | |
16 | for lib in $(find /lib*/ld*); do | |
17 | [[ -d $root/$(dirname $lib) ]] || mkdir -p $root/$(dirname $lib) | |
18 | cp $lib $root/$lib | |
19 | done | |
20 | fi | |
21 | ||
c7934185 EV |
22 | mkdir -p "$root/usr/lib" |
23 | touch "$root/usr/lib/os-release" | |
24 | ||
25 | ln -s busybox "$root/bin/sh" | |
26 | ln -s busybox "$root/bin/cat" | |
27 | ln -s busybox "$root/bin/tr" | |
28 | ln -s busybox "$root/bin/ps" | |
29 | ln -s busybox "$root/bin/ip" | |
30 | ||
31 | mkdir -p "$root/sbin" | |
32 | cat <<'EOF' >"$root/sbin/init" | |
33 | #!/bin/sh | |
34 | ||
35 | printf "ps aufx:\n" | |
36 | ps aufx | |
37 | ||
38 | printf "/proc/1/cmdline:\n" | |
39 | printf "%s\n\n" "$(tr '\0' ' ' </proc/1/cmdline)" | |
40 | ||
41 | printf "/proc/1/environ:\n" | |
42 | printf "%s\n\n" "$(tr '\0' '\n' </proc/1/environ)" | |
43 | ||
44 | printf "/proc/1/mountinfo:\n" | |
45 | cat /proc/self/mountinfo | |
46 | printf "\n" | |
47 | ||
48 | printf "/proc/1/cgroup:\n" | |
49 | printf "%s\n\n" "$(cat /proc/1/cgroup)" | |
50 | ||
51 | printf "/proc/1/uid_map:\n" | |
52 | printf "%s\n\n" "$(cat /proc/1/uid_map)" | |
53 | ||
54 | printf "/proc/1/setgroups:\n" | |
55 | printf "%s\n\n" "$(cat /proc/1/setgroups)" | |
56 | ||
57 | printf "/proc/1/gid_map:\n" | |
58 | printf "%s\n\n" "$(cat /proc/1/gid_map)" | |
59 | ||
60 | printf "ip link:\n" | |
61 | ip link | |
62 | EOF | |
63 | chmod +x "$root/sbin/init" |