From 44dde4606744a4bdd483c36840bc98850b9978f9 Mon Sep 17 00:00:00 2001 From: scriptos Date: Thu, 26 Mar 2026 22:52:21 +0100 Subject: [PATCH] fix: logrotate-Fehler durch unsichere Permissions am logs-Verzeichnis beheben --- Dockerfile | 2 +- assets/bin/RunTrackmaniaServer.sh | 21 ++++++++++++++++++++- assets/config/logrotate.conf | 1 + 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index b503965..3546af1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -57,7 +57,7 @@ RUN unzip /var/www/html/AdminServ_v2.1.1.zip -d /var/www/html \ && rm -f /var/www/html/AdminServ_v2.1.1.zip \ && rm -f /var/www/html/index.html \ && mkdir -p /var/www/html/logs \ - && chmod -R 777 /var/www/html/logs \ + && chmod 755 /var/www/html/logs \ && chmod 666 /var/www/html/config/adminlevel.cfg.php \ && chmod 666 /var/www/html/config/servers.cfg.php \ && chmod 666 /var/www/html/config/adminserv.cfg.php \ diff --git a/assets/bin/RunTrackmaniaServer.sh b/assets/bin/RunTrackmaniaServer.sh index 29094fe..7c00c37 100644 --- a/assets/bin/RunTrackmaniaServer.sh +++ b/assets/bin/RunTrackmaniaServer.sh @@ -39,7 +39,7 @@ DEFAULT_CONTROLPANEL="/opt/tmserver/default-controlpanel" if [ ! -f "$ADMINSERV_DIR/index.php" ]; then echo "==> Erster Start erkannt: Kopiere AdminServ-Dateien ins Volume..." cp -a "$DEFAULT_CONTROLPANEL"/* "$ADMINSERV_DIR/" - chmod -R 777 "$ADMINSERV_DIR/logs/" + chmod 755 "$ADMINSERV_DIR/logs/" chmod 666 "$ADMINSERV_DIR/config/adminlevel.cfg.php" chmod 666 "$ADMINSERV_DIR/config/servers.cfg.php" chmod 666 "$ADMINSERV_DIR/config/adminserv.cfg.php" @@ -492,6 +492,25 @@ if [ -f "$ADMINSERV_CFG_VOL" ] && grep -q "0b28a5799a32c687dad2c5183718ceac" "$A echo " Die /config-Seite ist jetzt abgesichert." fi +# ============================================================ +# AdminServ: Logs-Verzeichnis-Berechtigungen korrigieren (fuer bestehende Volumes) +# ============================================================ +# In aelteren Versionen wurde /var/www/html/logs/ mit chmod 777 +# (world-writable) angelegt. logrotate verweigert die Rotation von +# Log-Dateien in world-writable Verzeichnissen aus Sicherheitsgruenden. +# Die korrekte Berechtigung ist 755: www-data (Owner) behaelt +# Schreibzugriff, anderen Nutzern wird Write entzogen. +# ============================================================ +ADMINSERV_LOGS_DIR="/var/www/html/logs" +if [ -d "$ADMINSERV_LOGS_DIR" ]; then + CURRENT_PERMS=$(stat -c '%a' "$ADMINSERV_LOGS_DIR") + if [ "$CURRENT_PERMS" != "755" ]; then + echo "==> Korrigiere Berechtigungen fuer AdminServ-Logs-Verzeichnis (${CURRENT_PERMS} -> 755)..." + chmod 755 "$ADMINSERV_LOGS_DIR" + echo " Berechtigungen erfolgreich korrigiert." + fi +fi + echo "Starting apache server" service apache2 start diff --git a/assets/config/logrotate.conf b/assets/config/logrotate.conf index 7322f10..1487148 100644 --- a/assets/config/logrotate.conf +++ b/assets/config/logrotate.conf @@ -45,6 +45,7 @@ # AdminServ-Logs (liegen im persistenten Volume) /var/www/html/logs/*.log { + su www-data www-data size 10M rotate 5 missingok