26 lines
577 B
Bash
Executable File
26 lines
577 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
export UNSHH_CHROOT="$1"
|
|
UNSHH_COMMAND=("${@}")
|
|
unset "UNSHH_COMMAND[0]"
|
|
|
|
if ! [ -d "$1" ]; then
|
|
echo "'$1' is not a directory."
|
|
exit 1
|
|
fi
|
|
|
|
if ! [ -f "$1/etc/resolv.conf" ]; then
|
|
cp "/etc/resolv.conf" "$1/etc/resolv.conf"
|
|
fi
|
|
|
|
if ! [ -d "$1/opt/unshh" ]; then
|
|
mkdir -p "$1/opt"
|
|
cp -r "$UNSHH_DIR/skel" "$1/opt/unshh"
|
|
fi
|
|
|
|
export UNSHH_GROUP_NAME="$(id -n -g)"
|
|
export UNSHH_GROUP_ID="$(id -g)"
|
|
export UNSHH_USER_NAME="$(id -n -u)"
|
|
export UNSHH_USER_ID="$(id -u)"
|
|
unshare --mount --map-root-user "$UNSHH_CHROOT/opt/unshh/init" "${UNSHH_COMMAND[@]}"
|