Mam usługę rsync, która synchronizuje pliki ze zdalnego komputera na komputer, który upuszcza je na dysk sieciowy.
Potrzebuję skopiowanych plików, aby uzyskać natywne uprawnienia do folderu docelowego.
Proces synchronizacji działa poprawnie, ale po jego zakończeniu nie mogę uzyskać dostępu do niektórych folderów - Odmowa dostępu.
Jestem zalogowany jako administrator domeny; nie pozwoli mi to również modyfikować żadnych uprawnień do wspomnianych folderów. Co daje?
Uruchom polecenie:
rsync.exe -v -rlt -z --delete "src_path" "dst_path"
windows
permissions
rsync
avguchenko
źródło
źródło
Odpowiedzi:
(z http://www.samba.org/ftp/rsync/rsync.html )
Podsumowując: aby nadać plikom docelowym (starym i nowym) uprawnienia źródłowe, użyj
--perms
.Aby nadać nowym plikom domyślne uprawnienia miejsca docelowego (pozostawiając istniejące pliki bez zmian), upewnij się, że
--perms
opcja jest wyłączona i użyj--chmod=ugo=rwX
(co zapewnia włączenie wszystkich niemaskowanych bitów).Jeśli chcesz ułatwić to drugie zachowanie, możesz dla niego zdefiniować popt alias, na przykład umieszczając ten wiersz w pliku ~ / .popt (poniżej zdefiniowano opcję -Z i zawiera --no- g, aby użyć domyślnej grupy docelowego katalogu):
źródło
Zabezpieczenia „posix” Cygwina sprawiły mi wiele problemów z uprawnieniami do plików Windows NTFS - nawet przy użyciu
--no-perms
rsync.Odkryłem, że nowo utworzone pliki / foldery nie dziedziczą poprawnie domyślnych uprawnień, ale każdy plik / folder kończy się dużą
<not inherited>
liczbą pozycji na karcie Zabezpieczenia zaawansowane pliku / folderu systemu Windows. (I ten problem nie dotyczy tylko rsync).Znalazłem ten pokrewny post i ten link, oba bardzo pomocne w rozwiązywaniu tych problemów za pomocą
noacl
opcji w/etc/fstab
pliku cygwina . Minusem tego rozwiązania jest to, że cygwin traci możliwość ustawiania uprawnień do plików / folderów, ale w wielu przypadkach nie jest to ważne.(Googling w tym temacie prawdopodobnie znajdziesz odniesienia do ustawiania zmiennej środowiskowej CYGWIN = NONTSEC, ale dotyczy to cygwin v1.5 i nie działa w wersji cygwin v1.7.)
źródło
W systemie Windows z DeltaCopy mogłem sprawić, aby działał z
Działa nawet z
--recursive
źródło
rsync, przynajmniej na Cygwin ma następujący przełącznik:
-A, --acls zachowują listy ACL (implikuje --perms)
Moja wersja Cygwin to:
CYGWIN_NT-6.3 1.7.29 (0.272 / 5/3) 2014-04-07 13:46 x86_64 Cygwin
Mam nadzieję że to pomoże!
źródło
Najwyżej oceniana odpowiedź działa tylko wtedy, gdy używasz rsync przez ssh w Windows. Jeśli używasz demona cygwin rsync, po prostu użycie noacl w / etc / fstab nie pomaga, z jakiegokolwiek powodu nie honoruje dziedziczenia, nawet jeśli pozbędziesz się użytkownika i wypróbujesz noacl, zastąpienie itp. Wydaje się, że tak się dzieje jeśli rsyncingujesz na dysk najwyższego poziomu i użyj path = / cygdrive / cokolwiek w /etc/rsyncd.conf. Zamiast tego musisz utworzyć osobny punkt montowania w / etc / fstab i użyć go w pliku rsyncd.conf:
w /etc/rsyncd.conf, masz coś takiego:
Potem musiałem zrestartować system Windows, po prostu zrestartowanie samej usługi rsync nie wydawało się pomocne, wciąż rzucało błędy chroot i chdir (mimo że / d_drive zostało zamontowane i używało chroot = false i mogłem do niego napisać). Następnie podczas rsync w systemie Windows użyj:
źródło
W przeszłości właśnie ponownie przypisywałem uprawnienia w systemie Windows mojemu bieżącemu użytkownikowi, korzystając
takeown
z wiersza polecenia z podwyższonym poziomem uprawnień:takeown /f <NameOfFolder> /r /d Y
Oczywiście, jeśli użyłeś poprawnych
rsync
flag w pierwszej kolejności, nie jest to konieczne, ale jeśli nie chcesz ponownie uruchamiaćrsync
plików, które już skopiowałeś, polecam to.źródło
correct rsync flags
> a co by to było?Miałem ten problem
rsnapshot
, który używa rsync do tworzenia kopii zapasowych. Zastąpiłem go usuwając--relative
zrsync_long_args
. Po tym folderc
na dysk z dziwnymi uprawnieniami nie tworzy się.źródło