Make dump output 0644 by default, exclude flash config from H pull

pre-backup-dumps.sh: atomic_write nimmt jetzt einen optionalen
mode-Parameter (Default 0644). Damit sind alle DB-/SQLite-/BoltDB-
/Mongo-Dumps konsistent 0644 und vom Nearline-Pull lesbar. Die
sensible unraid-flash-config-Familie (.tar.gz, .sha256, .manifest)
ruft explizit mit mode 600 auf und bleibt damit Operator-only.
Loest das Permission-Problem fuer filebrowser.bolt.dump (Source
ist 0640) im naechsten regulaeren Dump-Lauf.

pull-critical-backups.ps1: Jobs koennen ExcludeFiles ueber /XF
mitliefern. borg-dumps-latest schliesst die unraid-flash-config-
Artefakte aus, weil sie bewusst 0600 bleiben sollen und sonst den
Lauf abbrechen lassen. Restore-Quelle fuer Flash-Config bleibt
das Hetzner-Borg-Repo.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-27 20:44:50 +02:00
parent 0ae44bd797
commit 24d0d90670
2 changed files with 27 additions and 8 deletions
+11 -6
View File
@@ -37,7 +37,13 @@ ensure_dirs() {
atomic_write() {
target="$1"
tmp="$2"
mode="${3:-644}"
mkdir -p "$(dirname "$target")"
# Standard 0644, damit der Nearline-Pull-Workflow (docs/H_DRIVE_NEARLINE_PULL.md)
# und Restore-Test-Skripte die Dumps per SMB-Read-Share oder unprivilegiert
# lesen koennen. Sensible Sonderfaelle wie unraid-flash-config rufen mit
# explizitem 600 auf, damit die bewusste Beschraenkung erhalten bleibt.
chmod "$mode" "$tmp"
mv "$tmp" "$target"
}
@@ -179,15 +185,15 @@ backup_unraid_flash_config() {
--exclude='config/plugins/*/*.zip' \
--exclude='config/plugins/*/*.md5' \
-czf "$tmp" config
chmod 600 "$tmp"
atomic_write "$output" "$tmp"
# Flash-Config ist sensibel (enthaelt /boot/config inkl. Plugin-/SMB-/Network-Settings);
# bewusst 0600, damit der Nearline-Pull ueber SMB sie nicht versehentlich greift.
atomic_write "$output" "$tmp" 600
(
cd "$LATEST_DIR"
sha256sum "$(basename "$output")"
) > "$tmp_checksum"
chmod 600 "$tmp_checksum"
atomic_write "$checksum" "$tmp_checksum"
atomic_write "$checksum" "$tmp_checksum" 600
{
printf 'created_utc=%s\n' "$(date -u '+%Y-%m-%dT%H:%M:%SZ')"
@@ -201,8 +207,7 @@ backup_unraid_flash_config() {
printf 'note=%s\n' 'Contains Unraid configuration and must be treated as secret backup material.'
printf 'excluded=%s\n' 'downloadable plugin package archives under /boot/config/plugins/*/'
} > "$tmp_manifest"
chmod 600 "$tmp_manifest"
atomic_write "$manifest" "$tmp_manifest"
atomic_write "$manifest" "$tmp_manifest" 600
}
dump_optional_pg_db() {