Mam dwie maszyny, Mac i PC z systemem Linux, które próbuję zsynchronizować pewien plik między Dropbox.
Jeden z plików, który synchronizuję, musi być zapisywalny przez innego użytkownika (inny UID na tym samym komputerze, nie odnoszący się do innego użytkownika Dropbox) poza mną. Mówiąc ściślej, ten inny UID jest tak naprawdę demonem. Tak więc albo plik musi być własnością tego innego użytkownika, albo wymagane jest pozwolenie na zapis dla „grupy” i / lub „innego”. Początkowo ustawiłem go w ten sposób na obu komputerach. Ponadto katalog zawierający plik jest już własnością (chmod 777) użytkownika, który musi mieć dostęp do zapisu do pliku.
Jednak za każdym razem, gdy plik jest synchronizowany z jednego pola do drugiego, wydaje się, że Dropbox całkowicie ignoruje oba zestawy uprawnień i zmienia uprawnienia do nowo zaktualizowanego pliku, który jest własnością mnie z uprawnieniami 0644 (rw dla mnie, r dla wszystkich innych ). Jeśli plik nie jest własnością, nawet zmienia własność z powrotem na mnie! W rezultacie drugi użytkownik nie ma już uprawnień do zapisu, dopóki ręcznie nie wejdę i nie zmienię pliku chmod.
Dodatkowe rzeczy, które próbowałem i które nie zadziałały:
upewniłem się, że konto użytkownika (dla „innego użytkownika”) na obu komputerach ma ten sam UID. Nie jestem pewien, dlaczego byłoby to konieczne, ponieważ moje konto podstawowe nie ma tego samego identyfikatora UID na obu komputerach.
chmod u+s <dir>
ichmod g+s <dir>
gdzie jest katalog zawierający dany plik.zmiana właściciela pliku na innego użytkownika i umieszczenie go poza katalogiem Dropbox oraz utworzenie dowiązania symbolicznego do pliku w katalogu Dropbox. Dropbox faktycznie usuwa dowiązanie symboliczne, pozostawia oryginalny plik (poza katalogiem Dropbox) bez zmian i tworzy nową kopię pliku, w którym kiedyś znajdowało się dowiązanie symboliczne!
Jak mogę skonfigurować ustawienia, aby zachować moje uprawnienia i / lub własność?
źródło
PAR=$(dirname $(readlink -f $0)) OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH LD_LIBRARY_PATH=$PAR${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH exec $PAR/dropbox $@
znajduje się w ./.dropbox-dist/ i jest zarządzany za pomocą dostarczonego skryptu pythonUmieść ten plik we własnym folderze i udostępnij ten folder innemu użytkownikowi. W ten sposób edytują najnowszą wersję tak jak Ty. Uważaj, aby nie pracować nad tym w tym samym czasie.
źródło
Jeśli skopiujesz plik między dwoma komputerami, oprogramowanie wykonujące kopiowanie decyduje o uprawnieniach do kopiowania. Do tego, co robisz, potrzebujesz dość szczegółowego mapowania uprawnień. Funkcje mapowania uprawnień Dropbox są ograniczone do zachowania uprawnień, jeśli oba systemy mają ten sam system operacyjny . Nie można zagwarantować określonych wyników kopiowania między dwoma różnymi systemami operacyjnymi.
Nawet jeśli możesz wymyślić jakiś sposób korzystania z Dropbox tak, jak chcesz, odradzam poleganie na nim. Nieudokumentowane dziwactwa oprogramowania mogą zniknąć bez uprzedzenia. Musisz przyjrzeć się narzędziom do przesyłania plików zaprojektowanym z myślą o Twoim przypadku użycia. Moim pierwszym wyborem będzie rsync , który jest standardem w dystrybucjach Linuksa i łatwy do zainstalowania w systemie Windows, szczególnie jeśli masz Cygwin . A Cygwin jest ogólnie przydatny dla osób, które muszą pracować zarówno z systemem Windows, jak i Linux!
Oczywiście rsync wymaga bezpośredniego połączenia - nie ma centralnego serwera, takiego jak Dropbox. Sposób radzenia sobie z tym zależy od szczegółów konfiguracji sieci.
źródło