Rsync - Einrichten von Rsync-Benutzern und deren Berechtigungen

Rsync - Einrichten von Rsync-Benutzern und deren Berechtigungen

Ich werde rsync zwischen zwei Webservern einrichten. Ich möchte ein Backup der Daten meines primären Servers auf dem sekundären Server haben, falls der primäre Server abstürzt. Meine Frage bezieht sich auf das Einrichten eines Benutzerkontos für rsync-Zwecke auf dem primären Server.

Aus offensichtlichen Gründen möchte ich hier nicht mein „Root“-Benutzerkonto verwenden. Daher möchte ich ein weiteres Konto einrichten, das nur für rsync-Zwecke verwendet wird. Soweit ich weiß, benötigt dieser Benutzer Leseberechtigungen für alle Dateien, die ich übertragen muss (Apache-Konfiguration, Linux-Benutzerdateien, WWW-Daten).

Wie richte ich solche Berechtigungen am besten ein? Soll ich dem Rsync-Benutzer Root-Rechte erteilen oder gibt es eine sicherere Möglichkeit, einen Benutzer für ein solches Backup zu erstellen?

Antwort1

Wenn das Netzwerk, das die beiden Server verbindet, sicher ist (z. B. ein lokales Netzwerk in Ihrem Büro), können Sie rsync im Daemon-Modus verwenden, um sich als Root anzumelden. Auf diese Weise benötigen Sie kein SSH, um die Verbindung herzustellen.

Erstellen Sie auf dem sekundären System eine Datei /etc/rsyncd.confmit folgendem Inhalt:

[all]
  path = /
  read only = no
  uid = 0
  gid = 0
  hosts allow = primary-host
  auth users = backupuser
  secrets files = /etc/rsyncd.secrets
  exclude = /tmp/ /var/tmp/ /var/cache/ /proc/ /sys/ /dev/ /run/ /boot/

Erstellen Sie nun eine Datei /etc/rsyncd.secretsbeispielsweise mit:

backupuser:thisisasecretpassword

Machen Sie die Datei nur für Root lesbar:

# chown root /etc/rsyncd.secrets; chmod 400 /etc/rsyncd.secrets

Nun müssen Sie noch dafür sorgen, dass rsync als Daemon gestartet wird; das hängt von Ihrer Distribution ab, bei Debian bearbeiten /etc/default/rsyncund ändern Sie die RSYNC_ENABLEZeile in RSYNC_ENABLE=trueund führen Sie aus /etc/init.d/rsync start(bei systemd dann führen Sie aus systemctl enable rsync; systemctl start rsync).

Jetzt können Sie rsync auf dem primären Host ausführen und alles, was Sie replizieren müssen, an den sekundären Host senden, indem Sie beispielsweise Folgendes tun:

# rsync -ai /var/www/ backupuser@secondary-host::all/var/www/

In diesem Fall fragt Rsync Sie nach dem geheimen Passwort.

verwandte Informationen