diff --git a/CHANGELOG.md b/CHANGELOG.md index cf18172..9fb9668 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ [Back to main](README.md#changelog) +## 2024-04-28 + +- Log-Rotation by @Gornoka (#261) +- Throw error when not run as root by @StaleLoafOfBread (#246) +- Minimise user write access to container service file @Callum027 (#241) + ## 2024-04-09 - Exclude save backup directory in backup @Dashboy1998 (#259) diff --git a/Dockerfile b/Dockerfile index a23b62a..aa83819 100644 --- a/Dockerfile +++ b/Dockerfile @@ -191,8 +191,8 @@ RUN apt-get update \ COPY --chmod=755 entrypoint.sh / COPY --chmod=755 scripts/ /scripts COPY --chmod=755 includes/ /includes -COPY --chmod=755 configs/rcon.yaml /home/steam/steamcmd/rcon.yaml -COPY --chmod=755 configs/PalWorldSettings.ini.template / +COPY --chmod=644 configs/rcon.yaml /home/steam/steamcmd/rcon.yaml +COPY --chmod=644 configs/PalWorldSettings.ini.template / COPY --chmod=755 gosu-amd64 /usr/local/bin/gosu RUN mkdir -p "$BACKUP_PATH" \ diff --git a/entrypoint.sh b/entrypoint.sh index 897ec82..53051d1 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,5 +1,6 @@ #!/bin/bash # shellcheck disable=SC1091 +# https://stackoverflow.com/questions/27669950/difference-between-euid-and-uid set -e @@ -9,6 +10,11 @@ APP_HOME=/home/$APP_USER source /includes/colors.sh +if [[ "${EUID}" -ne 0 ]]; then + ee ">>> This Docker-Container must be run as root! Please adjust how you started the container, to fix this error." + exit 1 +fi + if [[ "${PUID}" -eq 0 ]] || [[ "${PGID}" -eq 0 ]]; then ee ">>> Running Palworld as root is not supported, please fix your PUID and PGID!" exit 1 @@ -16,17 +22,13 @@ elif [[ "$(id -u steam)" -ne "${PUID}" ]] || [[ "$(id -g steam)" -ne "${PGID}" ] ew "> Current $APP_USER user PUID is '$(id -u steam)' and PGID is '$(id -g steam)'" ew "> Setting new $APP_USER user PUID to '${PUID}' and PGID to '${PGID}'" groupmod -g "${PGID}" "$APP_GROUP" && usermod -u "${PUID}" -g "${PGID}" "$APP_USER" -else +else ew "> Current $APP_USER user PUID is '$(id -u steam)' and PGID is '$(id -g steam)'" ew "> PUID and PGID matching what is requested for user $APP_USER" fi chown -R "$APP_USER":"$APP_GROUP" "$APP_HOME" chown -R "$APP_USER":"$APP_GROUP" "$GAME_ROOT" -chown "$APP_USER":"$APP_GROUP" /entrypoint.sh -chown "$APP_USER":"$APP_GROUP" /PalWorldSettings.ini.template -chown -R "$APP_USER":"$APP_GROUP" /scripts -chown -R "$APP_USER":"$APP_GROUP" /includes ew_nn "> id steam: " ; e "$(id steam)" diff --git a/includes/config.sh b/includes/config.sh index 9c4281c..34e5ade 100644 --- a/includes/config.sh +++ b/includes/config.sh @@ -40,7 +40,7 @@ function setup_palworld_settings_ini() { fi # Copy default-config, which comes with SteamCMD to gameserver save location ew "> Copying PalWorldSettings.ini.template to ${GAME_SETTINGS_FILE}" - cp "${PALWORLD_TEMPLATE_FILE}" "${GAME_SETTINGS_FILE}" + cp --no-preserve=ownership "${PALWORLD_TEMPLATE_FILE}" "${GAME_SETTINGS_FILE}" if [[ -n ${DIFFICULTY+x} ]]; then e "> Setting Difficulty to '$DIFFICULTY'"