aboutsummaryrefslogtreecommitdiff
path: root/scripts/docker-pid1.bash
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/docker-pid1.bash')
-rwxr-xr-xscripts/docker-pid1.bash23
1 files changed, 23 insertions, 0 deletions
diff --git a/scripts/docker-pid1.bash b/scripts/docker-pid1.bash
new file mode 100755
index 0000000..cee0dff
--- /dev/null
+++ b/scripts/docker-pid1.bash
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cat <<"EOF" > /etc/sudoers.d/apheleia
+%sudo ALL=(ALL:ALL) NOPASSWD: ALL
+EOF
+
+groupadd -g "$(stat -c %g "$PWD")" -o -p '!' -r apheleia
+useradd -u "$(stat -c %u "$PWD")" -g "$(stat -c %g "$PWD")" \
+ -o -p '!' -m -N -l -s /usr/bin/bash -G sudo apheleia
+
+runuser -u apheleia touch /home/apheleia/.sudo_as_admin_successful
+
+if (( "$#" == 0 )) || [[ -z "$1" ]]; then
+ set -- bash
+fi
+
+if (( "$#" == 1 )) && [[ "$1" == *" "* ]]; then
+ set -- bash -c "$1"
+fi
+
+exec runuser -u apheleia -- "$@"