fix: Backup-Snapshots werden jetzt mit sudo erstellt fuer korrekte Berechtigungen
Problem: Backups wurden ohne Root-Rechte erstellt. Dadurch wurden Datei- berechtigungen (UID/GID, rwx, ACLs, xattrs) nicht korrekt uebernommen. Root-Dateien konnten nicht gelesen werden. Backups waren unvollstaendig. Loesung: - rsync_manager: create_snapshot() nutzt jetzt sudo fuer rsync - rsync_manager: --numeric-ids Flag hinzugefuegt fuer korrekte UID/GID - snapshot_manager: mkdir mit sudo fuer Root-Besitz der Snapshots - snapshot_manager: delete_snapshot mit sudo (Snapshots sind Root-owned) - main_window: Sudo-Passwort-Dialog vor jedem Backup - main_window: Dialog-Text erweitert (Backup erfordert sudo) - main.cpp: --sudo-password Argument fuer CLI/Cron-Modus - main.cpp: Interaktive Passwort-Eingabe im CLI-Modus - README.md: Build-Abhaengigkeiten fuer alle Distros hinzugefuegt - README.md: Rechte-Tabelle aktualisiert - README.md: Cronjob-Beispiel mit Passwort-Speicherung aktualisiert Betroffene Dateien: src/rsync_manager.h, src/rsync_manager.cpp src/snapshot_manager.h, src/snapshot_manager.cpp src/main_window.h, src/main_window.cpp src/main.cpp README.md
This commit is contained in:
@@ -151,11 +151,14 @@ Platzbedarf: voll + delta (statt 2x voll)
|
||||
## CLI Nutzung
|
||||
|
||||
```bash
|
||||
# Backup jetzt erstellen und beenden
|
||||
# Backup jetzt erstellen (fragt nach sudo-Passwort)
|
||||
x3-backup --backup
|
||||
|
||||
# Backup mit Passwort-Argument (z.B. fuer Cron)
|
||||
x3-backup --backup --sudo-password "DEIN_PASSWORT"
|
||||
|
||||
# System-Backup (von Live-ISO)
|
||||
x3-backup --system-backup
|
||||
x3-backup --system-backup --sudo-password "DEIN_PASSWORT"
|
||||
|
||||
# Log auf STDOUT ausgeben
|
||||
x3-backup --backup --log
|
||||
@@ -167,14 +170,26 @@ x3-backup --help
|
||||
## Cronjob Beispiel
|
||||
|
||||
```bash
|
||||
# WICHTIG: Sudo-Passwort in Datei speichern fuer Cron:
|
||||
echo "DEIN_PASSWORT" > ~/.config/x3-backup/cron-pw.conf
|
||||
chmod 600 ~/.config/x3-backup/cron-pw.conf
|
||||
|
||||
# Script fuer Cron erstellen:
|
||||
cat > ~/.config/x3-backup/run-backup.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
PW=$(cat ~/.config/x3-backup/cron-pw.conf 2>/dev/null)
|
||||
/usr/local/bin/x3-backup --backup --sudo-password "$PW" >> ~/.config/x3-backup/x3-backup.log 2>&1
|
||||
EOF
|
||||
chmod +x ~/.config/x3-backup/run-backup.sh
|
||||
|
||||
# Taeglich um 2:00 Uhr
|
||||
0 2 * * * /usr/local/bin/x3-backup --backup &
|
||||
0 2 * * * ~/.config/x3-backup/run-backup.sh
|
||||
|
||||
# Alle 6 Stunden
|
||||
0 */6 * * * /usr/local/bin/x3-backup --backup &
|
||||
0 */6 * * * ~/.config/x3-backup/run-backup.sh
|
||||
|
||||
# Woechentlich Sonntag 3:00 Uhr
|
||||
0 3 * * 0 /usr/local/bin/x3-backup --backup &
|
||||
0 3 * * 0 ~/.config/x3-backup/run-backup.sh
|
||||
```
|
||||
|
||||
## Log Format
|
||||
@@ -190,17 +205,51 @@ x3-backup --help
|
||||
|
||||
| Aktion | Benoetigte Rechte |
|
||||
|---|---|
|
||||
| Backup erstellen | Normaler User (nur lesend auf Quelle) |
|
||||
| Backup erstellen | sudo (fuer korrekte Berechtigungen) |
|
||||
| Datei wiederherstellen | sudo (fuer Root-Berechtigungen) |
|
||||
| System wiederherstellen | sudo |
|
||||
| Cronjob installieren | Normaler User (crontab -e) |
|
||||
|
||||
**Wichtig:** Backups werden mit sudo ausgefuehrt, um alle Dateiberechtigungen (UID/GID, rwx, ACLs, xattrs)
|
||||
rekursiv korrekt zu uebernehmen. Ohne sudo waere das Backup unvollstaendig, da Root-Dateien nicht
|
||||
gelesen und Berechtigungen nicht preserve werden koennen.
|
||||
|
||||
## Abhaengigkeiten
|
||||
|
||||
### Build-Abhaengigkeiten
|
||||
|
||||
**Ubuntu / Debian:**
|
||||
```bash
|
||||
sudo apt install build-essential autoconf automake pkg-config libgtk-3-dev libjson-glib-dev rsync
|
||||
```
|
||||
|
||||
**Arch Linux:**
|
||||
```bash
|
||||
sudo pacman -S base-devel gtk3 json-glib rsync
|
||||
```
|
||||
|
||||
**Gentoo Linux:**
|
||||
```bash
|
||||
sudo emerge --ask dev-build/autoconf dev-build/automake dev-util/pkgconfig x11-libs/gtk+:3 dev-libs/json-glib net-misc/rsync
|
||||
```
|
||||
|
||||
**openSUSE:**
|
||||
```bash
|
||||
sudo zypper install -y gcc-c++ autoconf automake pkg-config gtk3-devel json-glib-devel rsync
|
||||
```
|
||||
|
||||
**Fedora:**
|
||||
```bash
|
||||
sudo dnf install gcc-c++ autoconf automake pkgconfig gtk3-devel json-glib-devel rsync
|
||||
```
|
||||
|
||||
### Laufzeit-Abhaengigkeiten
|
||||
|
||||
- GTK+ 3.0 (>= 3.24)
|
||||
- json-glib-1.0
|
||||
- rsync
|
||||
- crontab (optional)
|
||||
- sudo (fuer Root-Rechte bei Backups)
|
||||
- crontab (optional, fuer geplante Backups)
|
||||
|
||||
## Architektur
|
||||
|
||||
|
||||
Reference in New Issue
Block a user