Je cherche à désactiver complètement mon service SMBA et à le remplacer par un service WebDav.
Jusqu'à présent, toutes les recherches sur Google m'ont indiqué l'utilisation d'Apache / Webdav. C'est proche de ce dont j'ai besoin mais pour autant que je le lise, Apache doit avoir accès aux fichiers de mon utilisateur et pire; s'il crée un fichier, le nouveau fichier appartiendra à Apache (et non à l'utilisateur). Notez que la possession de fichiers avec la propriété et les autorisations Unix correctes est une exigence car certains utilisateurs ont un accès SSH direct.
Je cherche donc tout simplement un moyen de faire fonctionner Apache / Webdav "correctement" avec des utilisateurs multiples (c'est-à-dire de changer l'utilisateur unix en utilisateur connecté avant d'essayer de servir le fichier ) ou de trouver une alternative complète à Apache / Webdav.
Jusqu'à présent, les recherches n'ont rien révélé.
AssignUserIDExpr
acceptera l'utilisateur connecté. Il se peut que cela neAssignUserID
se déclenche pas avant que l'utilisateur ne s'authentifie.Réponses:
Si vous avez le nom d'utilisateur et / ou l'uid, vous pouvez le faire avec nginx + lua + luarocks ljsyscall
Sur un système Debian, configuré comme:
Et nginx a configuré la manière suivante:
Cela exécutera setfsuid sur chaque requête traitée par le travailleur nginx. Malheureusement, il semble que vous devez exécuter nginx en tant que root pour que cela fonctionne correctement actuellement. Je pense qu'il est possible que cela fonctionne avec un autre utilisateur à condition que le processus démarre en tant que root, déposé vers un autre utilisateur, avec CAP_SETUID conservé (voir la documentation pour
capsh
), et lauser
directive est absente dans le fichier de configuration nginx.Vous devrez peut-être également définir les ID de groupe, potentiellement.
Voir "Effet des changements d'ID utilisateur sur les capacités" dans http://man7.org/linux/man-pages/man7/capabilities.7.html
la source
Cela peut valoir la peine d'être lu: Une autre entrée: plusieurs dossiers utilisateur et un dossier partagé http://hexeract.wordpress.com/2011/02/25/configure-a-webdav-enabled-webserver-for-multiple-user-folders -et-un-dossier-partagé /
la source
J'ai utilisé celui-ci comme guide pour configurer webdav: http://bernaerts.dyndns.org/linux/75-debian/62-debian-webdav-share
oui, Apache est le groupe (www-data sous Debian) mais vous pouvez ajouter des utilisateurs à ce groupe, j'ai donc ajouté un utilisateur. N'a pas testé pourquoi vous ne pouvez pas ajouter d'autres utilisateurs .... Le serveur webdav utilisant en principe cette configuration fonctionne maintenant depuis 3 ans chez moi et chez mes fils (donc 2 serveurs identiques pour le travail de mon fils). Debian 6 est depuis quelques mois la version LTS (jusqu'en février 2016).
Par rapport à Bernaerts, j'ai adapté dans le fichier Apache: / etc / apache2 / sites-available / default cette partie de la configuration.
Donc, mes fichiers ne sont plus sous www mais dans / data / webdav1 (via l'alias webdav1 pour le garder court) Pour chaque disque dur j'ai créé une telle section et webdav1 devient webdav2 pour le 2ème disque dur de cette section. Nous pouvons construire au maximum 10 disques durs sur ces serveurs, donc 10 de ces sections dans ce fichier de configuration. J'ai ajouté l'utilisateur à www-data, davfs2 et davfs, afin que l'utilisateur puisse accéder au (x) dossier (s) webdav. L'utilisateur doit donc se connecter et il lui sera demandé le nom d'utilisateur et le mot de passe. Dans fstab, tous les disques de données webdav sont répertoriés afin que le montage se déroule automatiquement. Cette partie de fstab:
la source
Avez-vous essayé OwnCloud ? Je ne fais que le tester moi-même, mais il semble que cela réponde à vos exigences: webdav fonctionne prêt à l'emploi.
la source
Après avoir cherché pendant longtemps, je n'en ai tout simplement pas trouvé. Il existe de nombreux serveurs multi-utilisateurs mais je n'ai pas pu en trouver un qui s'exécutait en tant qu'utilisateur système.
J'en ai donc écrit un moi-même. Ceci n'est testé que dans la mesure où je peux le tester moi-même. Mais pour ce que ça vaut, le code source est ici:
https://github.com/couling/WebDAV-Daemon
la source
Hy,
Je cherchais la même chose et j'ai finalement trouvé une solution en utilisant apache2. J'ai essayé une solution de nœud en utilisant npm webdav-server et j'ai découvert que tout ne fonctionnait pas aussi bien qu'en utilisant le module apache. Ensuite, j'ai essayé un serveur npm dav basé sur jsDAV qui pourrait faire mieux et pourrait être une solution, mais comme je devais faire face à une mauvaise connexion 3g, j'ai préféré apache et découvert des scripts à instances multiples.
Alors là, je partage mon expérience.
http://helpcenter.epages.com/Doc/doc/apache2/README.multiple-instances
Je lance une instance par utilisateur webdav ... pas très évolutif, mais pour travailler en petite équipe c'est assez bien.
Remplacez myUser par votre utilisateur.
Sur Ubuntu 14.04
Je lance donc un processus apache en tant qu'utilisateur myUser défini dans / etc / apache2-myUser / envars
Modifier ports.conf
Je ne pouvais pas faire fonctionner l'authentification PAM sur Ubuntu 14.04, je dois donc tromper avec l'authentification de base car je l'enveloppe ensuite dans https avec nginx
Ensuite /etc/apache2-myUser/sites-available/000-default.conf
alors le proxy nginx a une astuce avec l'en-tête Le dossier des icônes de passage de destination permet à webdav de rétrograder bien sur les navigateurs
Il n'y a aucune obligation d'utiliser nginx comme proxy, apache pourrait très bien faire le https, mais comme je suis tombé sur le problème de destination du proxy, j'ai senti qu'il valait la peine de le mentionner.
la source
Je recherche également une solution similaire.
Solution 1: votre environnement de bureau (Gnome, KDE) peut avoir des widgets pour exposer un certain dossier par WebDAV. Cela fonctionnera tant que votre environnement de bureau est en cours d'exécution et n'est pas une solution démon.
Solution 2: rien ne vous empêche d'exécuter Apache sous votre propre liaison utilisateur sur des ports non privilégiés supérieurs à 1024. Écrivez simplement un fichier de configuration ou copiez ceux fournis dans votre distribution dans votre $ HOME / etc / httpd (juste un exemple), ajoutez DAV- configuration associée et exécutez-le en tant que votre propre utilisateur non root comme:
$ httpd -f $ HOME / etc / httpd
L'exécution en tant que vos utilisateurs garantit qu'Apache créera des fichiers comme vous.
la source