Es klingt wie das ist, was passiert:
- rsnapshot kopiert numerische UID und GID von Ihrem Mac auf Ihren Server
- Die UIDs für Ihr Mac-Konto und Ihr Server-Konto unterscheiden sich
- Die Berechtigungen für die kopierten Dateien erlauben Ihrer Server-Uid keinen Zugriff auf sie
Hierfür gibt es einige Lösungsmöglichkeiten.
Lösung 1: Verwenden Sie rsync --usermap
und--groupmap
rsnapshot verwendet rsync für die meiste Arbeit, und aktuelle Versionen von rsync haben die Möglichkeit, Uids und Gids zuzuordnen. Ich weiß nicht, ob rsnapshot so konfiguriert werden kann, dass diese Optionen an rsync übergeben werden, aber wenn dies der Fall ist, könnte das Ihr Problem lösen.
Lösung 2: Synchronisieren Sie Ihre Benutzer- und Gruppen-IDs.
Wenn auf Ihrer Workstation und Ihrem Server dasselbe Betriebssystem ausgeführt wird, ist dies wahrscheinlich möglich, aber es lohnt sich möglicherweise nicht, zu wechseln, wenn sie bereits anders konfiguriert sind. Wenn sie unterschiedliche Betriebssysteme verwenden, verfügen sie wahrscheinlich über inkompatible Zuweisungsschemata für UIDs. Es ist jedoch möglich, dass Sie nur die Uids für Ihren Benutzer synchronisieren. (Wenn nicht einer von ihnen Windows ist, ist dies überhaupt nicht möglich.) Wenn Sie die Konto-Uids ändern, werden die Besitzer-IDs der Dateien nicht geändert. Sie müssen dies als separaten Schritt tun. Das Ändern der Benutzer-ID eines Benutzers sollte keine große Sache sein, aber das Ändern der Benutzer-ID eines Dienstes kann ein Durcheinander sein.
Lösung 3: Trennen Sie den Kopierschritt
Wenn Sie alles als separaten Schritt auf den Server kopieren, bevor Sie rsnapshot ausführen, können Sie die Kopie mit einem Programm erstellen, das String-Namen anstelle von numerischen UIDs verwendet. Dies wird UIDs für alle übereinstimmenden Benutzernamen übersetzen. Unison, das einzige bidirektionale Dateisynchronisierungstool, das mir bekannt ist, wird dies tun. Es ist in den meisten Linux-Distributionen enthalten (aber nicht standardmäßig installiert) und für Macos über MacPorts oder als App- Paket verfügbar . Wenn Sie Dateien mit scp kopieren (standardmäßig in fast allen Fenstern außer Windows installiert und installiert), ist der Eigentümer der Benutzer, der beim empfangenden System angemeldet ist.
Lösung 3: Fügen Sie einen Uid / Gid-Übersetzungsschritt hinzu
Sie können die UID / GID ändern, nachdem rsnapshot abgeschlossen ist. Wenn Sie sich nur um eine oder zwei Uids kümmern, können Sie die Lösung anhand dieser Antwort anpassen :
find /your/rsynced/path -user 1000 -exec chown 505 {} \; find /your/rsynced/path -user 1001 -exec chown 700 {} \;
Dies behebt Ihre uid / gid, bricht jedoch das Hardlinking von unveränderten Dateien von rsnapshots - rsnapshot wird keine Hardlink-Dateien herstellen, die sich in irgendeiner Weise unterscheiden, einschließlich Änderungen an Metadaten. Es werden keine Dateien mit unterschiedlichen Eigentümern oder sogar Dateien mit unterschiedlichen Zeitstempeln hardlink verknüpft. (Dies ist ein rsync-Verhalten, das von rsnapshot verwendet, jedoch nicht geändert wird.)
Natürlich können Sie einen weiteren Schritt hinzufügen, um das Hardlinking zu wiederholen.