Wer Daten mit Rsync zwischen verschiedenen Linux- oder Unix-Rechnern überträgt, wird oft damit konfrontiert, dass die Dateien nach der Synchronisierung auf einmal einem anderen User gehören. Der Grund dafür ist, dass die numerischen IDs auf dem Zielrechner einem anderen Benutzer zugeordnet sind. Gibt es gar keinen Benutzer mit dieser ID, zeigt das System stattdessen nur die numerische ID an. So oder so ist das meistens nicht das was man möchte. Wer zum Beispiel Dateien aus einem Webserver-Verzeichnis überträgt, die für den entsprechenden User beschreibbar sind, will denselben Zustand auch oft auf dem Zielrechner erreichen. Natürlich kann man die Eigentümerschaft von Hand mit "chown" übertragen, aber diese Anpassung ist nach einem erneuten Rsync wieder dahin.
Ab Version 3.1 bietet Rsync dafür eine Lösung: die neuen Kommandozeilenoptionen "--usermap", "--groupmap" und "--chown". Hinter der Option folgen ein oder mehrere Mappings von Benutzernamen oder IDs, etwa so: "--usermap=0-99:nobody,wayne:admin,*:normal". Wildcards mit Sternchen funktionieren dabei nur mit Benutzernamen, nicht mit IDs. Um so die Daten von einem Webserver zum anderen mit unterschiedlichen Benutzer- und Gruppen-IDs zu mappen, verwenden Sie den folgenden Befehl:
rsync -az --usermap=apache:www-data --groupmap=apache:www-data webserver.domain.com:/srv/www/htdocs/ /var/www/html
Damit das funktioniert, müssen Sie beim Kopieren der Daten über Root-Rechte verfügen.