diff --git a/scripts/bin/container-foreground-cmd b/scripts/bin/container-foreground-cmd index a9cd4ca..d6fbc32 100755 --- a/scripts/bin/container-foreground-cmd +++ b/scripts/bin/container-foreground-cmd @@ -6,22 +6,24 @@ set -eu _IFS=${IFS}; IFS=, for gid in ${UNPRIVILEGED_USER_GROUPS?}; do if ! getent group "${gid:?}" >/dev/null 2>&1; then - groupadd -g "${gid:?}" "g_${gid:?}" + groupadd --gid "${gid:?}" "g_${gid:?}" fi done IFS=$_IFS # Create unprivileged user and group -groupadd \ - --gid "${UNPRIVILEGED_USER_GID:?}" \ - "${UNPRIVILEGED_USER_NAME:?}" -useradd \ - --uid "${UNPRIVILEGED_USER_UID:?}" \ - --gid "${UNPRIVILEGED_USER_GID:?}" \ - --groups "${UNPRIVILEGED_USER_GROUPS?}" \ - --shell "${UNPRIVILEGED_USER_SHELL:?}" \ - --create-home \ - "${UNPRIVILEGED_USER_NAME:?}" +if ! getent group "${UNPRIVILEGED_USER_GID:?}" >/dev/null 2>&1; then + groupadd --gid "${UNPRIVILEGED_USER_GID:?}" "${UNPRIVILEGED_USER_NAME:?}" +fi +if ! getent passwd "${UNPRIVILEGED_USER_UID:?}" >/dev/null 2>&1; then + useradd \ + --uid "${UNPRIVILEGED_USER_UID:?}" \ + --gid "${UNPRIVILEGED_USER_GID:?}" \ + --groups "${UNPRIVILEGED_USER_GROUPS?}" \ + --shell "${UNPRIVILEGED_USER_SHELL:?}" \ + --create-home \ + "${UNPRIVILEGED_USER_NAME:?}" +fi # Copy /etc/skel/ to unprivileged user home if empty UNPRIVILEGED_USER_HOME=$(getent passwd "${UNPRIVILEGED_USER_NAME:?}" | cut -d: -f6)