From 8bd84d59782d7a297e947edad9151620d91f47f7 Mon Sep 17 00:00:00 2001 From: AJ Granowski Date: Sun, 29 Sep 2024 17:39:32 -0700 Subject: [PATCH] Conditionally set HOME depending on if HOST_MAPPED_USER is root --- src/image/entrypoint | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/image/entrypoint b/src/image/entrypoint index 6ef9243..8e9a60b 100755 --- a/src/image/entrypoint +++ b/src/image/entrypoint @@ -164,6 +164,10 @@ else adduser -D -G "$gid_groupname" -s /bin/sh -u $HOST_MAPPED_UID $HOST_MAPPED_USER 2>&3; fi echo "Created user: $(print_user "$HOST_MAPPED_USER")" >&3; + + HOME_DIR="/home/$HOST_MAPPED_USER"; + else + HOME_DIR="/root"; fi # Set the ownership of a set of items to the user. @@ -171,6 +175,8 @@ else echo "$CHOWN_LIST" | xargs chown -c "$HOST_MAPPED_UID:$HOST_MAPPED_GID" >&3; fi + if [ $HOST_MAPPED_UID -ne 0 ] && [ "$HOST_MAPPED_USER" != 'root' ]; then + # Execute using $HOST_MAPPED_UID. if check_setpriv >/dev/null 2>&1; then if [ -n "$CAPABILITIES" ]; then @@ -180,7 +186,7 @@ else fi echo "setpriv --bounding-set \"$capabilities\" --init-groups --no-new-privs --reuid=$HOST_MAPPED_UID --regid=$HOST_MAPPED_GID ..." >&3; - HOME="/home/$HOST_MAPPED_USER" LOGNAME="$HOST_MAPPED_USER" SHELL='/bin/sh' USER="$HOST_MAPPED_USER" setpriv --bounding-set "$capabilities" --init-groups --no-new-privs --reuid=$HOST_MAPPED_UID --regid=$HOST_MAPPED_GID "$@"; + HOME="$HOME_DIR" LOGNAME="$HOST_MAPPED_USER" SHELL='/bin/sh' USER="$HOST_MAPPED_USER" setpriv --bounding-set "$capabilities" --init-groups --no-new-privs --reuid=$HOST_MAPPED_UID --regid=$HOST_MAPPED_GID "$@"; elif command -v gosu >/dev/null; then echo "gosu "$HOST_MAPPED_UID:$HOST_MAPPED_GID" ..." >&3; gosu "$HOST_MAPPED_UID:$HOST_MAPPED_GID" "$@";