Chcę całkowicie wycofać moją usługę SMBA i zastąpić ją usługą WebDav.
Wszystkie dotychczasowe wyszukiwania google wskazywały na użycie Apache / Webdav. To jest prawie to, czego potrzebuję, ale o ile czytam, wymaga Apache dostępu do plików mojego użytkownika i jeszcze gorzej; jeśli utworzy plik, nowy plik będzie własnością Apache (nie użytkownika). Należy pamiętać, że posiadanie plików z prawidłową własnością i uprawnieniami w systemie Unix jest wymagane, ponieważ niektórzy użytkownicy mają bezpośredni dostęp do SSH.
Dlatego po prostu szukam sposobu, aby albo Apache / Webdav działał „poprawnie” z wieloma użytkownikami (to znaczy zmienić użytkownika unix na zalogowanego przed próbą podania pliku ) lub znaleźć kompletną alternatywę dla Apache / Webdav.
Jak dotąd wyszukiwania nic nie pokazały.
AssignUserIDExpr
zaakceptuje zalogowanego użytkownika. Wygląda na to, że nieAssignUserID
uruchamia się przed uwierzytelnieniem użytkownika.Odpowiedzi:
Jeśli masz nazwę użytkownika i / lub identyfikator użytkownika, możesz to zrobić za pomocą nginx + lua + luarocks ljsyscall
W systemie debian skonfigurowanym jako:
I Nginx skonfigurował w następujący sposób:
Spowoduje to uruchomienie setfsuid przy każdym żądaniu obsługiwanym przez pracownika nginx. Niestety, wydaje się, że musisz uruchomić nginx jako root, aby to działało poprawnie. Wierzę, że jest możliwe, aby działało to z innym użytkownikiem, pod warunkiem, że proces został uruchomiony jako root, spadł do innego użytkownika z zachowanym CAP_SETUID (patrz dokumentacja
capsh
), auser
dyrektywa nie istnieje w pliku konfiguracyjnym nginx.Konieczne może być również ustawienie identyfikatorów grupy.
Zobacz „Wpływ zmian ID użytkownika na możliwości” w http://man7.org/linux/man-pages/man7/capabilities.7.html
źródło
Warto przeczytać: Kolejne dane wejściowe: wiele folderów użytkowników i jeden folder współdzielony http://hexeract.wordpress.com/2011/02/25/configure-a-webdav-enabled-webserver-for-multiple-user-folders -i-jeden-wspólny folder /
źródło
Użyłem tego jako przewodnika do konfiguracji webdav: http://bernaerts.dyndns.org/linux/75-debian/62-debian-webdav-share
tak, Apache jest grupą (dane www pod Debianem), ale możesz dodawać użytkowników do tej grupy, więc dodałem jednego użytkownika. Nie przetestowałem, dlaczego nie możesz dodawać innych użytkowników ... Serwer webdav korzystający w zasadzie z tej konfiguracji działa teraz przez 3 lata u mnie i mojego syna (więc 2 identyczne serwery do pracy mojego syna). Debian 6 jest od kilku miesięcy wersją LTS (do lutego 2016).
W porównaniu do Bernaerts zaadaptowałem w pliku Apache: / etc / apache2 / sites-available / default ta część konfiguracji.
Tak więc moje pliki nie znajdują się już pod www, ale w / data / webdav1 (przez alias webdav1, aby było krótkie). Dla każdego dysku twardego utworzyłem taką sekcję, a webdav1 staje się webdav2 dla drugiego dysku twardego w tej sekcji. Możemy wbudować maksymalnie 10 dysków twardych na tych serwerach, więc 10 z tych sekcji w tym pliku konfiguracyjnym. Dodałem użytkownika do www-data, davfs2 i davfs, aby użytkownik mógł uzyskać dostęp do folderów webdav. Dlatego użytkownik musi się zalogować i zostanie poproszony o podanie nazwy użytkownika i hasła. W fstab wszystkie dyski z danymi webdav są wymienione, więc montowanie przebiega automatycznie. Ta część fstab:
źródło
Czy próbowałeś OwnCloud ? Wciąż testuję go sam, ale wygląda na to, że spełnia twoje wymagania: webdav działa od razu po wyjęciu z pudełka.
źródło
Po długim szukaniu nie mogłem go znaleźć. Istnieje wiele serwerów z wieloma użytkownikami, ale nie mogłem znaleźć takiego, który zostałby wykonany jako użytkownik systemu.
Więc sam napisałem jeden. Jest to testowane tylko w takim stopniu, w jakim mogę to przetestować samodzielnie. Ale za ile jest wart, kod źródłowy jest tutaj:
https://github.com/couling/WebDAV-Daemon
źródło
Hy,
Szukałem tego samego i wreszcie znalazłem rozwiązanie za pomocą apache2. Próbowałem rozwiązania węzła przy użyciu npm webdav-server i okazało się, że nie wszystkie działały tak ładnie, jak przy użyciu modułu apache. Potem wypróbowałem npm serwer DAV oparty na jsDAV, który mógłby działać lepiej i może być rozwiązaniem, ale ponieważ miałem do czynienia z kiepskim połączeniem 3g, wolałem apache i dowiedziałem się o wielu skryptach instancji.
Tutaj dzielę się swoim doświadczeniem.
http://helpcenter.epages.com/Doc/doc/apache2/README.multiple-instances
Uruchamiam instancję dla użytkownika webdav ... niezbyt skalowalny, ale do pracy w małym zespole wystarczy.
Zastąp myUser swoim użytkownikiem.
W systemie Ubuntu 14.04
Więc uruchamiam proces Apache jako użytkownik myUser zdefiniowany w / etc / apache2-myUser / envars
Edytuj ports.conf
Nie mogłem uzyskać uwierzytelnienia PAM na Ubuntu 14.04 do pracy, więc muszę oszukać przy użyciu podstawowego uwierzytelniania, ponieważ następnie zawijam go w https za pomocą nginx
Następnie /etc/apache2-myUser/sites-available/000-default.conf
wtedy nginx proxy ma sztuczkę z nagłówkiem Folder ikon przekazywania celu pozwala ładnie obniżyć przeglądarkę webdav w przeglądarkach
Nie ma obowiązku używania nginx jako proxy, apache może równie dobrze zrobić https, ale kiedy wpadłem na proxy Docelowy problem, poczułem, że warto o tym wspomnieć.
źródło
Szukam również podobnego rozwiązania.
Rozwiązanie 1: Twoje środowisko pulpitu (Gnome, KDE) może mieć widżety do ujawnienia określonego folderu przez WebDAV. Będzie działać tak długo, jak długo działa środowisko pulpitu i nie jest rozwiązaniem demonicznym.
Rozwiązanie 2: Nic nie stoi na przeszkodzie, aby uruchomić Apache pod własnym wiązaniem użytkownika na nieuprzywilejowanych portach powyżej 1024. Po prostu napisz plik konfiguracyjny lub skopiuj te zawarte w twojej dystrybucji do $ HOME / etc / httpd (tylko przykład), dodaj DAV- powiązaną konfigurację i uruchom ją jako własny użytkownik inny niż root, taki jak:
$ httpd -f $ HOME / etc / httpd
Uruchamianie jako użytkownicy zapewnia, że Apache będzie tworzyć pliki tak jak Ty.
źródło