Überlassen Sie die ACL-Behandlung Windows mit Cygwin rsync

10

Ich führe einen rsyncBefehl aus und kopiere meine Dateien von einem Server auf meinen Windows-Computer wie folgt:

rsync -rt --partial-dir=".rsync" --del rsync://server/a/ a/

Immer wenn dieser Befehl ein Verzeichnis erstellt, wird ein Verzeichnis mit verrückten ACLs / Berechtigungen erstellt. Für mich werden in der Regel zehn <not inherited>Einträge erstellt, wobei ein Eintrag für den Benutzer verweigert wird, der den rsyncBefehl ausgeführt hat, und die anderen ebenfalls wenig sinnvoll sind. Dies geschieht sogar mit der --chmod=ugo=rwXOption, die ein ähnlicher Thread vorgeschlagen hat.

Was kann ich tun, um zu verhindern, dass überhaupt rsyncversucht wird, Berechtigungen festzulegen (und die Berechtigungen einfach der ACL-Vererbung in Windows zu überlassen)?

palswim
quelle

Antworten:

12

Hängen Sie das betreffende Verzeichnis mit der noaclOption ein, wie im Handbuch beschrieben .

(Wenn Sie wissen möchten, warum die Zuordnung von Unix-Berechtigungen zu Windows-ACLs nicht einfach ist, lesen Sie hier .)

ak2
quelle
noaclverhindert zwar die verrückten Berechtigungen, aber da es Berechtigungen mit dem "schreibgeschützten" Bit vortäuscht, erhalte ich eine Reihe seltsamer, teilweise schreibgeschützter Verzeichnisse. Dies ist eine Verbesserung.
Palswim
1
Eigentlich sieht es so aus, als ob ich dieses "teilweise schreibgeschützte" Symptom in jedem Verzeichnis bekomme (ob es rsyncerstellt wurde oder nicht). Es scheint, dass Windows nur sagt, dass Verzeichnisse keine schreibgeschützte Eigenschaft haben .
Palswim
2
Die Antwort von ak2 war sehr hilfreich, aber es dauerte einiges an googeln, um herauszufinden, wie man die Datei noaclin / etc / fstab richtig einrichtet. Ich fand diesen Link sehr hilfreich. Mit noaclmeiner rsync Probleme behoben - danke.
Mikrofonieren
1
@miking gab bereits einen schönen Hinweis mit diesem Link und der noaclOption. Mit MobaXterm (portabel) hat es für mich nicht geklappt, da sich das /etc/fstabbei jedem Start neu zu erstellen scheint . Ich habe diese Platzierung teilweise mount -c /drives -o binary,posix=0,user,auto,noaclumgangen .bashrc. "Teilweise", da dies nur die "Windows-Laufwerksbuchstaben" betrifft (und nicht z /home. B. ).
Izzy
1
@ SimonEast - Gefunden, während Sie geantwortet haben. Könnten Sie dies versuchen und antworten? - developer.redhat.com/blog/2018/02/07/… - # Wenn Ihre Distribution keine typische fstab-Datei hat, kann dies cwRsyncleicht behoben werden. Erstellen Sie die Datei um $MY_RSYNC_DIST_DIR/etc/fstabund fügen Sie den folgenden Inhalt ein:none /cygdrive cygdrive binary,posix=0,user,noacl 0 0
Alex S