Ich möchte meinen SMBA-Dienst vollständig außer Betrieb nehmen und durch einen WebDav-Dienst ersetzen.
Alle bisherigen Google-Suchanfragen haben mich auf die Verwendung von Apache / Webdav hingewiesen. Dies entspricht in etwa dem, was ich brauche, aber soweit ich es lese, muss Apache Zugriff auf die Dateien meines Benutzers haben, was noch schlimmer ist. Wenn eine Datei erstellt wird, gehört die neue Datei Apache (nicht dem Benutzer). Beachten Sie, dass Dateien mit dem richtigen Unix-Besitz und den richtigen Unix-Berechtigungen erforderlich sind, da einige Benutzer direkten SSH-Zugriff haben.
Ich suche also ganz einfach nach einer Möglichkeit, Apache / Webdav entweder "richtig" mit mehreren Benutzern zu machen (dh den Unix-Benutzer in den angemeldeten Benutzer zu ändern, bevor versucht wird, die Datei bereitzustellen ) oder eine vollständige Alternative zu Apache / zu finden. Webdav.
Bisher haben Suchanfragen nichts ergeben.
AssignUserIDExpr
der angemeldete Benutzer akzeptiert wird. Möglicherweise wird es seitdem nicht mehrAssignUserID
aktiviert, bevor sich der Benutzer authentifiziert.Antworten:
Wenn Sie den Benutzernamen und / oder die UID haben, können Sie dies mit nginx + lua + luarocks ljsyscall tun
Auf einem Debian-System, konfiguriert als:
Und nginx hat Folgendes konfiguriert:
Dadurch wird setfsuid bei jeder Anforderung ausgeführt, die vom Nginx-Worker bearbeitet wird. Leider scheint es, dass Sie nginx als root ausführen müssen, damit dies derzeit richtig funktioniert. Ich glaube, dass dies mit einem anderen Benutzer möglich ist, vorausgesetzt, der Prozess wurde als root gestartet, auf einen anderen Benutzer verschoben, wobei CAP_SETUID beibehalten wurde (siehe Dokumentation zu
capsh
), und dieuser
Direktive fehlt in der Nginx-Konfigurationsdatei.Möglicherweise müssen Sie auch die Gruppen-IDs festlegen.
Siehe "Auswirkungen von Änderungen der Benutzer-ID auf die Funktionen" unter http://man7.org/linux/man-pages/man7/capabilities.7.html
quelle
Dies kann lesenswert sein: Eine weitere Eingabe: mehrere Benutzerordner und ein freigegebener Ordner http://hexeract.wordpress.com/2011/02/25/configure-a-webdav-enabled-webserver-for-multiple-user-folders -und-ein-freigegebener-Ordner /
quelle
Ich habe diesen als Leitfaden zum Einrichten von webdav verwendet: http://bernaerts.dyndns.org/linux/75-debian/62-debian-webdav-share
Ja, Apache ist die Gruppe (www-Daten unter Debian), aber Sie können Benutzer zu dieser Gruppe hinzufügen, also habe ich einen Benutzer hinzugefügt. Habe nicht getestet, warum du keine anderen Benutzer hinzufügen darfst .... Der Webdav-Server, der im Prinzip dieses Setup verwendet, läuft jetzt für 3 Jahre bei mir und meinen Söhnen (also 2 identische Server für die Arbeit meines Sohnes). Debian 6 ist seit einigen Monaten die LTS-Version (bis Februar 2016).
Im Vergleich zu Bernaerts habe ich diesen Teil der Konfiguration in der Apache-Datei angepasst: / etc / apache2 / sites-available / default.
Meine Dateien befinden sich also nicht mehr unter www, sondern in / data / webdav1 (über den Alias webdav1, um es kurz zu halten). Für jede Festplatte habe ich einen solchen Abschnitt erstellt und webdav1 wird zu webdav2 für die 2. Festplatte in diesem Abschnitt. Wir können maximal 10 Festplatten in diese Server einbauen, also 10 dieser Abschnitte in dieser Konfigurationsdatei. Ich habe den Benutzer zu www-data, davfs2 und davfs hinzugefügt, damit der Benutzer auf die webdav-Ordner zugreifen kann. Der Benutzer muss sich also anmelden und wird nach dem Benutzernamen und dem Passwort gefragt. In fstab werden alle Webdav-Datenträger aufgelistet, sodass das Mounten automatisch erfolgt. Dieser Teil von fstab:
quelle
Haben Sie OwnCloud ausprobiert ? Ich teste es immer noch selbst, aber es hört sich so an, als würde es Ihre Anforderungen erfüllen: webdav funktioniert sofort.
quelle
Nachdem ich lange gesucht hatte, konnte ich einfach keinen finden. Es gibt viele Mehrbenutzerserver, aber ich konnte keinen finden, der als Systembenutzer ausgeführt wurde.
Also habe ich selbst einen geschrieben. Dies wird nur getestet, soweit ich es selbst testen kann. Aber für was es wert ist, ist der Quellcode hier:
https://github.com/couling/WebDAV-Daemon
quelle
Hy,
Ich habe nach dem gleichen gesucht und mit apache2 endlich eine Lösung gefunden. Ich habe versucht, die Knotenlösung mit dem npm-Webdav-Server zu lösen, und festgestellt, dass nicht alle so gut funktionieren wie mit dem Apache-Modul. Dann habe ich einen auf jsDAV basierenden npm dav-Server ausprobiert, der besser funktionieren und eine Lösung sein könnte, aber da ich mich mit miesen 3g-Verbindungen auseinandersetzen musste, habe ich Apache bevorzugt und mich über mehrere Instanzskripte informiert.
Hier teile ich meine Erfahrungen.
http://helpcenter.epages.com/Doc/doc/apache2/README.multiple-instances
Ich führe eine Instanz pro Webdav-Benutzer aus ... nicht sehr skalierbar, aber um in einem kleinen Team zu arbeiten, ist es gut genug.
Ersetzen Sie myUser durch Ihren Benutzer.
Unter Ubuntu 14.04
Daher führe ich einen Apache-Prozess als Benutzer myUser aus, der in / etc / apache2-myUser / envars definiert ist
Bearbeiten Sie die Datei ports.conf
Ich konnte die PAM-Authentifizierung unter Ubuntu 14.04 nicht zum Laufen bringen, daher muss ich mit der Basisauthentifizierung tricksen, da ich sie dann mit nginx in https einbinde
Dann /etc/apache2-myUser/sites-available/000-default.conf
Dann hat der Nginx-Proxy einen Trick mit dem Header. Der Ordner für die Zielübergabe von Symbolen ermöglicht ein gutes Downgrade von Webdav in Browsern
Es besteht keine Verpflichtung, nginx als Proxy zu verwenden. Apache könnte das https sehr gut ausführen, aber als ich auf das Problem mit dem Proxy-Ziel stieß, hielt ich es für erwähnenswert.
quelle
Ich suche auch nach einer ähnlichen Lösung.
Lösung 1: Ihre Desktop-Umgebung (Gnome, KDE) verfügt möglicherweise über Widgets, mit denen ein bestimmter Ordner von WebDAV verfügbar gemacht werden kann. Dies wird ausgeführt, solange Ihre Desktop-Umgebung ausgeführt wird und keine Daemon-Lösung ist.
Lösung 2: Nichts hindert Sie daran, Apache unter Ihrer eigenen Benutzerbindung an nicht privilegierten Ports über 1024 auszuführen. Schreiben Sie einfach eine Konfigurationsdatei oder kopieren Sie die in Ihrer Distribution enthaltenen Dateien in Ihr $ HOME / etc / httpd (nur ein Beispiel) und fügen Sie DAV- hinzu. verwandte Konfiguration und führen Sie es als Ihr eigener Nicht-Root-Benutzer wie:
$ httpd -f $ HOME / etc / httpd
Wenn Sie als Benutzer ausgeführt werden, wird sichergestellt, dass Apache Dateien wie Sie erstellt.
quelle