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:
@@ -29,6 +29,23 @@
|
||||
|
||||
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_UPLOADS="/var/lib/dogfather-internal/uploads"
|
||||
ZIEL="/var/backups/dogfather"
|
||||
@@ -50,6 +67,12 @@ fehler() {
|
||||
|
||||
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')
|
||||
ARBEIT="$ZIEL/taeglich/$STEMPEL"
|
||||
mkdir -p "$ARBEIT"
|
||||
|
||||
Reference in New Issue
Block a user