From fdfffc47d8aac67864ead6c2a89ef5967ab86e31 Mon Sep 17 00:00:00 2001 From: "Carlos M. Martinez" Date: Sat, 27 Jan 2024 19:49:43 -0500 Subject: [PATCH] Minimized processes running as root. --- Dockerfile | 7 ++++--- scripts/backup.sh | 4 ++++ scripts/init.sh | 10 +++------- scripts/start.sh | 7 ++++++- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 137cf38..363306a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN wget -q https://github.com/gorcon/rcon-cli/releases/download/v0.10.3/rcon-0.10.3-amd64_linux.tar.gz -O - | tar -xz && \ - mv rcon-0.10.3-amd64_linux/rcon /usr/bin/rcon-cli + mv rcon-0.10.3-amd64_linux/rcon /usr/bin/rcon-cli && \ + ln -s /home/steam/server/rcon.yaml /root/rcon.yaml ENV PORT= \ PUID=1000 \ @@ -31,8 +32,8 @@ ENV PORT= \ SERVER_DESCRIPTION= COPY ./scripts/* /home/steam/server/ -RUN chmod +x /home/steam/server/init.sh /home/steam/server/start.sh /home/steam/server/backup.sh && \ - mv /home/steam/server/backup.sh /usr/local/bin/backup +RUN chmod u+x /home/steam/server/init.sh /home/steam/server/start.sh /home/steam/server/backup.sh && \ + ln -s /home/steam/server/backup.sh /usr/local/bin/backup WORKDIR /home/steam/server diff --git a/scripts/backup.sh b/scripts/backup.sh index 82e75eb..61911be 100644 --- a/scripts/backup.sh +++ b/scripts/backup.sh @@ -9,4 +9,8 @@ FILE_PATH="/palworld/backups/palworld-save-${DATE}.tar.gz" cd /palworld/Pal/ || exit tar -zcf "$FILE_PATH" "Saved/" + +if [ $(id -u) -eq 0 ]; then + chown steam:steam "$FILE_PATH" +fi echo "backup created at $FILE_PATH" diff --git a/scripts/init.sh b/scripts/init.sh index bbf91a4..24c3fac 100644 --- a/scripts/init.sh +++ b/scripts/init.sh @@ -10,12 +10,7 @@ else fi mkdir -p /palworld/backups -chown -R steam:steam /palworld - -if [ "${UPDATE_ON_BOOT}" = true ]; then - printf "\e[0;32m*****STARTING INSTALL/UPDATE*****\e[0m\n" - su steam -c '/home/steam/steamcmd/steamcmd.sh +force_install_dir "/palworld" +login anonymous +app_update 2394010 validate +quit' -fi +chown -R steam:steam /palworld /home/steam/ term_handler() { if [ "${RCON_ENABLED}" = true ]; then @@ -29,6 +24,7 @@ term_handler() { trap 'term_handler' SIGTERM -./start.sh & +su steam -c ./start.sh & +# Process ID of su killpid="$!" wait $killpid diff --git a/scripts/start.sh b/scripts/start.sh index 2d83c36..bef212f 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -1,5 +1,10 @@ #!/bin/bash +if [ "${UPDATE_ON_BOOT}" = true ]; then + printf "\e[0;32m*****STARTING INSTALL/UPDATE*****\e[0m\n" + /home/steam/steamcmd/steamcmd.sh +force_install_dir "/palworld" +login anonymous +app_update 2394010 validate +quit +fi + STARTCOMMAND=("./PalServer.sh") if [ -n "${PORT}" ]; then @@ -81,5 +86,5 @@ EOL printf "\e[0;32m*****STARTING SERVER*****\e[0m\n" echo "bash -c '${STARTCOMMAND[*]}'" -su steam -c "bash -c '${STARTCOMMAND[*]}'" +"${STARTCOMMAND[@]}"