rsync - Rechte im Ziel beibehalten?

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
petrolman
Beiträge: 48
Registriert: 20.05.2010 14:54:22

rsync - Rechte im Ziel beibehalten?

Beitrag von petrolman » 22.05.2024 19:14:51

Hallo,
ich würde gerne config-Dateien z.B. aus /etc/, die ich ausschließlich lokal in meiner Entwicklungsumgebung editiere und nicht auf dem Server so wieder zum Server kopieren, dass die Rechte im Ziel erhalten bleiben. Nach Änderungen möchte ich nur noch ein Shell-Skript aufrufen müssen, welches aktualisierte Dateien überträgt.

Beispiel
./sync_configs.sh
#!/bin/bash
BASEDIR="/home/.."
rsync -rtu $BASEDIR/mx_global/configs/etc/ root@<myhost>:/etc/ -e ssh --progress
[...]

Nun ist aber so, dass z.B. Configs mit dem Besitzer root:dovecot nach der Übertragung auf root:root geändert werden. Ich möchte mir bei dieser Übertragung keine Gedanken über die tatsächlichen Besitzer auf dem Server machen. Bei scp klappt das, aber dann müsste ich ja wieder die Dateien mit den entsprechenden Verzeichnisangaben einzeln übertragen.

Benutzeravatar
heisenberg
Beiträge: 3692
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: rsync - Rechte im Ziel beibehalten?

Beitrag von heisenberg » 22.05.2024 19:32:47

Komisch, dass das mit scp klappen soll. Kann aber gut sein.

Du kannst ja die Berechtigungen im Ziel vorher sichern und nachher wieder herstellen. Dazu brauchst Du das Paket Debianacl auf dem Zielserver.

So ungefähr kann ich mir das vorstellen:

Code: Alles auswählen

ssh zielhost getfacl -R zielverzeichnis >lokaledatei.txt
rsync ...
cat lokaledatei.txt | ssh zielhost bash -c "cd zielverzeichnis; setfacl --restore=-"
rm -f lokaledatei.txt
Wenn Du aber zusätzliche Dateien überträgst, die im Ziel noch nicht vorhanden sind, dann müsstest Du wahrscheinlich noch Befehle zur Änderung der Dateirechte anfügen.

tobo
Beiträge: 2070
Registriert: 10.12.2008 10:51:41

Re: rsync - Rechte im Ziel beibehalten?

Beitrag von tobo » 22.05.2024 19:42:30

rsync hat einen Archive-Mode (-a), was sowohl Gruppen- (-g) als auch Besitzerrechte (-o) beinhaltet und die Eigentümer-Rechte zum Zielmedium überträgt. Spricht irgendwas gegen -a als Option?

Benutzeravatar
heisenberg
Beiträge: 3692
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: rsync - Rechte im Ziel beibehalten?

Beitrag von heisenberg » 22.05.2024 19:45:54

@tobo:

Das ist nicht das, was der TE möchte. Der TE möchte ...
... dass die Rechte im Ziel erhalten bleiben.

Benutzeravatar
petrolman
Beiträge: 48
Registriert: 20.05.2010 14:54:22

Re: rsync - Rechte im Ziel beibehalten?

Beitrag von petrolman » 22.05.2024 20:04:23

Ich habe ACL ausprobiert auf dem Server. Hat geklappt, das würde ich dann verwenden :-) Danke für den Hinweis.

Benutzeravatar
petrolman
Beiträge: 48
Registriert: 20.05.2010 14:54:22

Re: rsync - Rechte im Ziel beibehalten?

Beitrag von petrolman » 23.05.2024 13:11:13

Ich habe doch noch eine rsync-Option gefunden, mit der die Rechte im bestehenden Ziel beibehalten werden.

rsync -rtu --inplace $BASEDIR/mx_global/configs/etc/ root@<myhost>:/etc/ -e ssh --progress

--inplace
This option changes how rsync transfers a file when the file's data needs to be updated: instead of the default method of creating a new copy of the file and moving it into place when it is complete, rsync instead writes the updated data directly to the destination file.

Die Rechte-Änderung kommt dadurch zustande, dass standardmäßg zuerst eine Kopie angelegt wird und dann ins Ziel verschoben wird.

Antworten