Logrotate: TESM_LOG_DIR world-writable verhinderte jede Rotation
Root Cause (live auf POETEST reproduziert): /var/log/tesm war 0o777
(noch aus einer Zeit vor dem Umstieg auf root-laufende systemd-Units).
logrotate verweigert seit den aktuellen Haertungen jede Rotation in
einem group-/world-writable Verzeichnis ("insecure permissions") komplett
-- live.log wuchs auf POETEST seit der letzten Neuinstallation (9 Tage)
unbegrenzt, /var/lib/logrotate/status hatte fuer tesm ueberhaupt keinen
Eintrag. Direkte Folge: die neue Verlauf-Seite blieb leer, weil nie
live.log.1/.2/... entstanden.
Fix:
- os.chmod(TESM_LOG_DIR) und os.chmod(TESM_CLIENT_UPDATE_LOG_DIR) in
app.py: 0o777 -> 0o755 (tesm.service/tesm-check.service laufen beide
als root, kein anderer Dienstbenutzer schreibt hierher -- Keas eigenes
Log liegt separat unter /var/log/kea/). Laeuft bei jedem App-Start,
heilt bestehende Installationen also automatisch beim naechsten
Neustart/Update.
- install.sh: chmod 777 -> chmod 755 fuer /var/log/tesm bei einer
Frischinstallation, veraltete/falsche Kommentar-Begruendung (angeblich
auch fuer Kea noetig) korrigiert.
- _write_logrotate_config(): zusaetzlich 'su root root' in der
generierten Konfiguration als Absicherung, falls das Verzeichnis aus
irgendeinem Grund wieder zu weit geoeffnet wird.
- VERSION 1.0.5 -> 1.0.6.
Live verifiziert auf Testsystem-Update-Restart: logrotate -d zeigt nach
dem Fix keine 'insecure permissions'-Fehler mehr, ein erzwungener Lauf
(logrotate -f) erzeugt sauber live.log.1/live.log.2.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+11
-6
@@ -102,13 +102,18 @@ sudo apt-get update >>/var/log/tesm-install.log 2>&1 && print_status "apt update
|
||||
sudo apt-get install -y python3 python3-venv python3-pip nginx sqlite3 expect openssh-client git rsync iputils-ping logrotate >>/var/log/tesm-install.log 2>&1 && print_status "Packages installed"
|
||||
|
||||
# ---- Log-Verzeichnis ----
|
||||
# Weltweit beschreibbar, da sowohl root (tesm.service/poe.sh) als auch
|
||||
# der i.d.R. unprivilegierte kea-dhcp4-server-Dienstbenutzer (_kea) hier
|
||||
# ihre jeweils eigene Log-Datei anlegen/schreiben müssen. Die eigentliche
|
||||
# logrotate-Konfiguration (/etc/logrotate.d/tesm) schreibt die App
|
||||
# selbst beim Start bzw. beim Speichern unter Systemeinstellungen → Logs.
|
||||
# NICHT weltweit beschreibbar (0755 reicht) -- sowohl tesm.service als
|
||||
# auch tesm-check.service (poe.sh) laufen als root, kein anderer
|
||||
# Dienstbenutzer schreibt hierher (Keas eigenes Log liegt separat unter
|
||||
# TESM_KEA_LOG_PATH, i.d.R. /var/log/kea/). Ein group-/world-writable
|
||||
# Verzeichnis lässt logrotate die Rotation aus Sicherheitsgründen
|
||||
# komplett verweigern ("insecure permissions") -- live reproduziert: bei
|
||||
# 0777 rotierte live.log über Wochen hinweg gar nicht mehr. Die
|
||||
# eigentliche logrotate-Konfiguration (/etc/logrotate.d/tesm) schreibt
|
||||
# die App selbst beim Start bzw. beim Speichern unter
|
||||
# Systemeinstellungen → Logs.
|
||||
sudo mkdir -p /var/log/tesm
|
||||
sudo chmod 777 /var/log/tesm
|
||||
sudo chmod 755 /var/log/tesm
|
||||
|
||||
# ---- App-Verzeichnis ----
|
||||
step "Deploying application to /srv/tesm"
|
||||
|
||||
Reference in New Issue
Block a user