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.
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.
Richten Sie den passwortlosen Zugriff für user1 ein, um auf user2 @ server1 zuzugreifen, und führen Sie dann Folgendes aus:
%Vor%Tags und Links permissions ssh unix deployment rsync