Synchronisieren lokaler und entfernter Verzeichnisse mit dem öffentlichen Schlüssel rsync + ssh + als einem Benutzer, der sich vom Besitzer des ssh-Schlüssels unterscheidet

8

Ziel ist es, lokale und Remote-Ordner über SSH zu synchronisieren.

Mein aktueller Benutzer ist user1 und ich habe einen passwortlosen Zugriff über ssh auf einen Server server1 eingerichtet. Ich möchte den lokalen Ordner mit einem Ordner auf server1 mithilfe des Dienstprogramms rsync synchronisieren. Normalerweise würde ich laufen:

%Vor% Der

ssh -Zugriff funktioniert wie erwartet, rsync kann eine Verbindung über ssh herstellen, gibt aber den Fehler "Zugriff verweigert" zurück, weil server1 Der Ordner /path/to/remote/folder gehört zu user2 : user2 . Dateiberechtigungen des Ordners erlauben keine Änderung durch andere Benutzer. user1 ist ein sudoer auf server1 , sodass sudo su - user2 während der Sitzung ssh funktioniert. Wie kann man rsync festlegen, um den Benutzer zu wechseln, wenn er ssh auf den Server verlagert hat?

Das Hinzufügen von user1 zur Gruppe user2 ist keine Option, da die gesamte Benutzer- / Gruppenverwaltung auf dem Server automatisch erfolgt und alle X Minuten von einem zentralen Repo repliziert wird Ich habe keinen Zugang zu.

Dies gilt auch für die Änderung der Berechtigungen / des Besitzers des Zielordners: Er wird regelmäßig mit einem Zurücksetzen aller Berechtigungen aktualisiert.

Eine mögliche Lösung, die mir in den Sinn kommt, ist ein Skript, das den lokalen Ordner mit einem temporären temporären Remote-Ordner auf dem Server user1 synchronisiert und anschließend zwei Remote-Ordner als user2 .

Googeln für eine kürzere und schönere Lösung brachte keinen Erfolg.

    
schatten 16.01.2013, 04:04
quelle

3 Antworten

5

Ich habe es nicht selbst versucht, aber wie wäre es mit rsync '--rsync-path' Option?

%Vor%     
ymnk 16.01.2013, 23:51
quelle
1

Um das Berechtigungsproblem zu beheben, müssen Sie rsync über eine SSH-Sitzung ausführen, die sich remote als Benutzer2 einloggt:

%Vor%

Die folgende Antwort erklärt, wie Sie die SSH-Tasten einrichten.

Mark O'Connor 16.01.2013 21:49
quelle
0

Richten Sie den passwortlosen Zugriff für user1 ein, um auf user2 @ server1 zuzugreifen, und führen Sie dann Folgendes aus:

%Vor%     
John Kugelman 16.01.2013 04:20
quelle