Pozostaw obsługę ACL w Windows dzięki Cygwin rsync

11

Uruchamiam rsyncpolecenie, kopiując moje pliki z serwera na komputer z systemem Windows, na przykład:

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

Ilekroć to polecenie tworzy katalog, zwykle tworzy katalog z szalonymi listami ACL / uprawnieniami. Dla mnie jest tendencja do tworzenia dziesięciu <not inherited>wpisów, z jednym z nich odmowa dla użytkownika, który uruchomił rsyncpolecenie, a inne też nie mają większego sensu. Dzieje się tak nawet przy użyciu --chmod=ugo=rwXopcji sugerowanej przez podobny wątek .

Co mogę zrobić, aby w ogóle nie rsyncpróbować ustawiać uprawnień (i po prostu pozostawić uprawnienia do dziedziczenia ACL w systemie Windows)?

palswim
źródło

Odpowiedzi:

13

Zamontuj dany katalog z noaclopcją, jak opisano w instrukcji .

(A jeśli chcesz wiedzieć, dlaczego mapowanie uprawnień Unix na listy ACL systemu Windows nie jest proste, zobacz tutaj .)

ak2
źródło
noaclzapobiega szalonym uprawnieniom, ale ponieważ podrabia uprawnienia bitem „tylko do odczytu”, otrzymuję kilka dziwnych katalogów tylko do odczytu. To jest poprawa.
palswim
1
Właściwie wygląda na to, że dostaję ten symptom „częściowego odczytu” w dowolnym katalogu (niezależnie od tego, czy rsyncgo utworzyłem, czy nie). Wygląda na to, że Windows mówi tylko, że katalogi nie mają właściwości tylko do odczytu .
palswim
2
Odpowiedź ak2 była bardzo pomocna, ale zajęło sporo googlingu, aby dowiedzieć się, jak noaclpoprawnie ustawić / etc / fstab. Ten link był dla mnie bardzo pomocny. Używanie noaclnaprawiło moje problemy z rsync - dzięki.
miking
1
@miking już dawał miłą wskazówkę z tym linkiem i noaclopcją. Nie działało to dla mnie z MobaXterm (przenośnym), ponieważ wydaje się, że tworzy się ponownie /etc/fstabprzy każdym uruchomieniu. I częściowo obeszli że umieszczenie mount -c /drives -o binary,posix=0,user,auto,noaclw moje .bashrc. „Częściowo”, ponieważ wpływa to tylko na „litery dysku systemu Windows” (a nie np /home.).
Izzy
1
@ SimonEast - Znaleziono to podczas odpowiedzi. Czy możesz spróbować i odpowiedzieć? - developers.redhat.com/blog/2018/02/07/… - # Jeśli twoja dystrybucja nie ma typowego pliku fstab, który cwRsyncmożna łatwo naprawić. Utwórz plik $MY_RSYNC_DIST_DIR/etc/fstabi wklej następującą zawartość:none /cygdrive cygdrive binary,posix=0,user,noacl 0 0
Alex S