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.
rsync - Rechte im Ziel beibehalten?
- heisenberg
- Beiträge: 4123
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: rsync - Rechte im Ziel beibehalten?
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 acl auf dem Zielserver.
So ungefähr kann ich mir das vorstellen:
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.
Du kannst ja die Berechtigungen im Ziel vorher sichern und nachher wieder herstellen. Dazu brauchst Du das Paket acl 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
Re: rsync - Rechte im Ziel beibehalten?
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?
- heisenberg
- Beiträge: 4123
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: rsync - Rechte im Ziel beibehalten?
@tobo:
Das ist nicht das, was der TE möchte. Der TE möchte ...
Das ist nicht das, was der TE möchte. Der TE möchte ...
... dass die Rechte im Ziel erhalten bleiben.
Re: rsync - Rechte im Ziel beibehalten?
Ich habe ACL ausprobiert auf dem Server. Hat geklappt, das würde ich dann verwenden Danke für den Hinweis.
Re: rsync - Rechte im Ziel beibehalten?
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.
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.