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
|
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"
|
||||||
|
|||||||
Reference in New Issue
Block a user