Backups mit rsnapshot

March 7, 2016

Der Backup Server verbindet sich mit dem User rsnapshot via SSH auf die Backup Clients und macht einen rsync. Auf dem Zielsystem hat der User rsnapshot die Shell /usr/local/bin/sudo_wrapper:

#!/bin/bash
/usr/bin/sudo $SSH_ORIGINAL_COMMAND

Hier wird der ursprüngliche SSH Befehl, im Fall von rsnapshot der rsync Befehl, mit sudo Rechten ausgeführt, um unabhängig von den Berechtigungen alle Dateien zu sichern. Dieses Script wird automatisch beim SSH Login mit dem Key des rsnapshot Users aufgerufen. Dazu ist unter /home/rsnapshot/.ssh/authorized_keys ein Command für genau diesen Key definiert:

command="/usr/local/bin/sudo_wrapper" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQS1f...

Damit der User rsnapshot nicht jedes beliebige Kommando direkt ausgeführt kann, ist er in der /etc/sudoers auf den Aufruf von rsync beschränkt.

rsnapshot ALL=NOPASSWD:/usr/bin/rsync