Sicherung: Kundendaten nicht mehr fuer jedes Konto lesbar

Der erste echte Lauf hat einen Mangel sichtbar gemacht, den das Skript
selbst verursacht hat: root legt Dateien standardmaessig mit 644 an,
also welt-lesbar. Nachgemessen als gewoehnliches Konto, ohne sudo: Die
Sicherung liess sich nach /tmp kopieren und daraus Kundennamen,
E-Mail-Adressen und Paketwahl auslesen; das Upload-Archiv ebenso. Auf
dieser Maschine bestehen fuenf Konten.

Eine Sicherung buendelt an einer Stelle, was sonst verstreut liegt --
sie muss enger geschuetzt sein als das Original, nicht lockerer.

umask 077 fuer alles Neue; fuer die bereits angelegten Verzeichnisse
zusaetzlich ausdruecklich 700 bzw. 600, denn umask wirkt nur auf neu
Erzeugtes.

Der gleiche Mangel besteht beim Original selbst (644 dogiintern) --
das kann ich nicht aendern, es gehoert nicht mir. Wird gemeldet.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-08-26 00:34:05 +02:00
co-authored by Claude Opus 5
parent bf6c105bc5
commit 75ab3f713f
+23
View File
@@ -29,6 +29,23 @@
set -uo pipefail set -uo pipefail
# ---------------------------------------------------------------------
# WER DARF DIE SICHERUNG LESEN
#
# Hier liegen Namen, E-Mail-Adressen, Zahlungen und Widerrufsnachweise
# von Kunden -- an einem Stueck und bequem kopierbar.
#
# Ohne diese Zeile legt root neue Dateien mit 644 an, also fuer jeden
# Systembenutzer lesbar. Auf dieser Maschine sind das fuenf Konten. Das
# wurde nachgemessen: Ein gewoehnliches Konto konnte die Sicherung nach
# /tmp kopieren und die Kundendaten auslesen -- ohne sudo, ohne Huerde.
#
# Eine Sicherung buendelt alles, was sonst verstreut liegt. Sie gehoert
# damit zu den lohnendsten Zielen ueberhaupt und muss enger geschuetzt
# sein als das Original, nicht lockerer.
# ---------------------------------------------------------------------
umask 077
QUELLE_DB="/var/lib/dogfather-internal/dogfather-internal.db" QUELLE_DB="/var/lib/dogfather-internal/dogfather-internal.db"
QUELLE_UPLOADS="/var/lib/dogfather-internal/uploads" QUELLE_UPLOADS="/var/lib/dogfather-internal/uploads"
ZIEL="/var/backups/dogfather" ZIEL="/var/backups/dogfather"
@@ -50,6 +67,12 @@ fehler() {
mkdir -p "$ZIEL/taeglich" "$ZIEL/woechentlich" || fehler "Zielverzeichnis nicht anlegbar" mkdir -p "$ZIEL/taeglich" "$ZIEL/woechentlich" || fehler "Zielverzeichnis nicht anlegbar"
# umask wirkt nur auf NEU angelegte Dateien. Verzeichnisse, die schon
# bestehen, behalten ihre alten Rechte -- deshalb hier ausdruecklich.
chmod 700 "$ZIEL" "$ZIEL/taeglich" "$ZIEL/woechentlich" 2>/dev/null
find "$ZIEL" -type f -exec chmod 600 {} + 2>/dev/null
find "$ZIEL" -mindepth 1 -type d -exec chmod 700 {} + 2>/dev/null
STEMPEL=$(date '+%Y-%m-%d') STEMPEL=$(date '+%Y-%m-%d')
ARBEIT="$ZIEL/taeglich/$STEMPEL" ARBEIT="$ZIEL/taeglich/$STEMPEL"
mkdir -p "$ARBEIT" mkdir -p "$ARBEIT"