Is there a multi-user webdav server available for linux?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
9
down vote

favorite
1












I'm looking to completely decommission my SMBA service and replace it with a WebDav service.



All the google searches so far have pointed me to using Apache / Webdav. This is close to what I need but as far as I read it requires Apache to have access to my user's files and worse; if it creates a file the new file will be owned by Apache (not the user). Note that having files with the correct Unix ownership and permissions is a requirement as some users have direct SSH access.



So I'm quite simply looking for a way to either make Apache / Webdav work "correctly" with multi-users (that is change unix user to the logged in user before attempting to serve the file) or find a complete alternative to Apache / Webdav.



So far searches haven't turned anything up.










share|improve this question























  • As webdav is based on the HTTP protocol, I would say it's not existing except under the form of an HTTP server. And if you find product that offer webdav trhey will usually offer more than that
    – Kiwy
    Apr 3 '14 at 18:50










  • It looks like there may be something promising in the latest version of MPM ITK. mpm-itk.sesse.net I'll have a try with this and see if AssignUserIDExpr will accept the logged in user. It may not since AssignUserID appears to kick in before the user authenticates.
    – couling
    Apr 7 '14 at 11:09











  • There are standalone webdav servers like code.google.com/p/opendav or libraries like PyWebDAV that don't require apache.
    – Jan
    Aug 21 '14 at 7:58










  • @jan That may turn out to to be the best answer. Apache is running on the server already and webdav should be a subdirectory on the site but I can set that up as a proxy pass through and use Apache's SSL to provide the encryption.
    – couling
    Aug 25 '14 at 22:37






  • 1




    Should be moved to Software Recommendations.SE.
    – William Edwards
    Oct 18 '14 at 19:55














up vote
9
down vote

favorite
1












I'm looking to completely decommission my SMBA service and replace it with a WebDav service.



All the google searches so far have pointed me to using Apache / Webdav. This is close to what I need but as far as I read it requires Apache to have access to my user's files and worse; if it creates a file the new file will be owned by Apache (not the user). Note that having files with the correct Unix ownership and permissions is a requirement as some users have direct SSH access.



So I'm quite simply looking for a way to either make Apache / Webdav work "correctly" with multi-users (that is change unix user to the logged in user before attempting to serve the file) or find a complete alternative to Apache / Webdav.



So far searches haven't turned anything up.










share|improve this question























  • As webdav is based on the HTTP protocol, I would say it's not existing except under the form of an HTTP server. And if you find product that offer webdav trhey will usually offer more than that
    – Kiwy
    Apr 3 '14 at 18:50










  • It looks like there may be something promising in the latest version of MPM ITK. mpm-itk.sesse.net I'll have a try with this and see if AssignUserIDExpr will accept the logged in user. It may not since AssignUserID appears to kick in before the user authenticates.
    – couling
    Apr 7 '14 at 11:09











  • There are standalone webdav servers like code.google.com/p/opendav or libraries like PyWebDAV that don't require apache.
    – Jan
    Aug 21 '14 at 7:58










  • @jan That may turn out to to be the best answer. Apache is running on the server already and webdav should be a subdirectory on the site but I can set that up as a proxy pass through and use Apache's SSL to provide the encryption.
    – couling
    Aug 25 '14 at 22:37






  • 1




    Should be moved to Software Recommendations.SE.
    – William Edwards
    Oct 18 '14 at 19:55












up vote
9
down vote

favorite
1









up vote
9
down vote

favorite
1






1





I'm looking to completely decommission my SMBA service and replace it with a WebDav service.



All the google searches so far have pointed me to using Apache / Webdav. This is close to what I need but as far as I read it requires Apache to have access to my user's files and worse; if it creates a file the new file will be owned by Apache (not the user). Note that having files with the correct Unix ownership and permissions is a requirement as some users have direct SSH access.



So I'm quite simply looking for a way to either make Apache / Webdav work "correctly" with multi-users (that is change unix user to the logged in user before attempting to serve the file) or find a complete alternative to Apache / Webdav.



So far searches haven't turned anything up.










share|improve this question















I'm looking to completely decommission my SMBA service and replace it with a WebDav service.



All the google searches so far have pointed me to using Apache / Webdav. This is close to what I need but as far as I read it requires Apache to have access to my user's files and worse; if it creates a file the new file will be owned by Apache (not the user). Note that having files with the correct Unix ownership and permissions is a requirement as some users have direct SSH access.



So I'm quite simply looking for a way to either make Apache / Webdav work "correctly" with multi-users (that is change unix user to the logged in user before attempting to serve the file) or find a complete alternative to Apache / Webdav.



So far searches haven't turned anything up.







multiuser webdav






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited May 31 '16 at 9:06

























asked Apr 3 '14 at 18:05









couling

228210




228210











  • As webdav is based on the HTTP protocol, I would say it's not existing except under the form of an HTTP server. And if you find product that offer webdav trhey will usually offer more than that
    – Kiwy
    Apr 3 '14 at 18:50










  • It looks like there may be something promising in the latest version of MPM ITK. mpm-itk.sesse.net I'll have a try with this and see if AssignUserIDExpr will accept the logged in user. It may not since AssignUserID appears to kick in before the user authenticates.
    – couling
    Apr 7 '14 at 11:09











  • There are standalone webdav servers like code.google.com/p/opendav or libraries like PyWebDAV that don't require apache.
    – Jan
    Aug 21 '14 at 7:58










  • @jan That may turn out to to be the best answer. Apache is running on the server already and webdav should be a subdirectory on the site but I can set that up as a proxy pass through and use Apache's SSL to provide the encryption.
    – couling
    Aug 25 '14 at 22:37






  • 1




    Should be moved to Software Recommendations.SE.
    – William Edwards
    Oct 18 '14 at 19:55
















  • As webdav is based on the HTTP protocol, I would say it's not existing except under the form of an HTTP server. And if you find product that offer webdav trhey will usually offer more than that
    – Kiwy
    Apr 3 '14 at 18:50










  • It looks like there may be something promising in the latest version of MPM ITK. mpm-itk.sesse.net I'll have a try with this and see if AssignUserIDExpr will accept the logged in user. It may not since AssignUserID appears to kick in before the user authenticates.
    – couling
    Apr 7 '14 at 11:09











  • There are standalone webdav servers like code.google.com/p/opendav or libraries like PyWebDAV that don't require apache.
    – Jan
    Aug 21 '14 at 7:58










  • @jan That may turn out to to be the best answer. Apache is running on the server already and webdav should be a subdirectory on the site but I can set that up as a proxy pass through and use Apache's SSL to provide the encryption.
    – couling
    Aug 25 '14 at 22:37






  • 1




    Should be moved to Software Recommendations.SE.
    – William Edwards
    Oct 18 '14 at 19:55















As webdav is based on the HTTP protocol, I would say it's not existing except under the form of an HTTP server. And if you find product that offer webdav trhey will usually offer more than that
– Kiwy
Apr 3 '14 at 18:50




As webdav is based on the HTTP protocol, I would say it's not existing except under the form of an HTTP server. And if you find product that offer webdav trhey will usually offer more than that
– Kiwy
Apr 3 '14 at 18:50












It looks like there may be something promising in the latest version of MPM ITK. mpm-itk.sesse.net I'll have a try with this and see if AssignUserIDExpr will accept the logged in user. It may not since AssignUserID appears to kick in before the user authenticates.
– couling
Apr 7 '14 at 11:09





It looks like there may be something promising in the latest version of MPM ITK. mpm-itk.sesse.net I'll have a try with this and see if AssignUserIDExpr will accept the logged in user. It may not since AssignUserID appears to kick in before the user authenticates.
– couling
Apr 7 '14 at 11:09













There are standalone webdav servers like code.google.com/p/opendav or libraries like PyWebDAV that don't require apache.
– Jan
Aug 21 '14 at 7:58




There are standalone webdav servers like code.google.com/p/opendav or libraries like PyWebDAV that don't require apache.
– Jan
Aug 21 '14 at 7:58












@jan That may turn out to to be the best answer. Apache is running on the server already and webdav should be a subdirectory on the site but I can set that up as a proxy pass through and use Apache's SSL to provide the encryption.
– couling
Aug 25 '14 at 22:37




@jan That may turn out to to be the best answer. Apache is running on the server already and webdav should be a subdirectory on the site but I can set that up as a proxy pass through and use Apache's SSL to provide the encryption.
– couling
Aug 25 '14 at 22:37




1




1




Should be moved to Software Recommendations.SE.
– William Edwards
Oct 18 '14 at 19:55




Should be moved to Software Recommendations.SE.
– William Edwards
Oct 18 '14 at 19:55










6 Answers
6






active

oldest

votes

















up vote
1
down vote













This may be worth to read:
Another input: multiple user folders and one shared folder
http://hexeract.wordpress.com/2011/02/25/configure-a-webdav-enabled-webserver-for-multiple-user-folders-and-one-shared-folder/






share|improve this answer




















  • This has the same problem as your other answer. Some users have ssh access. The files MUST be given correct (their own, not the web server's) unix file permissions and ownership (both user and group).
    – couling
    Oct 20 '14 at 10:49

















up vote
0
down vote













I used this one as guide to set up webdav:
http://bernaerts.dyndns.org/linux/75-debian/62-debian-webdav-share



yes, Apache is the group (www-data under Debian) but you can add users to that group, so I added one user. Did not test why you may not add other users....
The webdav server using in principle this setup runs now for 3 yrs at my and my sons place (so 2 identical servers for the work of my son). Debian 6 is since some months the LTS version (till Feb-2016).



Compared to Bernaerts I adapted in the Apache file:
/etc/apache2/sites-available/default this part of configuration.



Alias /webdav1 /data/webdav1

<Location /webdav1>
DAV on
Authtype Basic
Authname "webdav1"
AuthUserFile /var/www/web1/passwd1.dav
Require valid-user
</location>


So my files are no longer under www but in /data/webdav1 (through alias webdav1 to keep it short)
For each hard disk I've created such a section and webdav1 becomes webdav2 for the 2nd hard disk in that section. We can build in max 10 hard disks in these servers, so 10 of these section in that config file. I added the user to www-data, davfs2 and davfs, so that the user can have access the webdav folder(s). So the user need to login and will be asked for the username and password.
In fstab all the webdav data disks are listed so that mounting proceeds automaticallly.
That part of fstab:




/dev/sda3 /data/webdav1 ext3, user,auto 0 0







share|improve this answer













We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.













  • Sadly this doesn't solve the problem at all. The focus of this question was multi user. With this solution new files will be created as the apache user not the logged in user. In order to function apache all files must be www-data group with read / write permissions to that group. Since every user will have to be in that group every user will have to have access to read / write every other user's files. This solution simply doesn't wok for multiple users.
    – couling
    Oct 20 '14 at 10:45

















up vote
0
down vote













Have you tried OwnCloud? Still just testing it myself, but it sounds like it fills your requirements: webdav works out-of-the-box.






share|improve this answer




















  • Yes I have an instance of Owncloud but thats not what I'm looking for because the owncloud user (apache) owns all the files.
    – couling
    May 31 '16 at 9:04

















up vote
0
down vote



accepted










Having searched for a long time I just couldn't find one. There are many multi user servers but I couldn't find one which executed as the system user.



So I wrote one myself. This is only tested as far as I can test it myself. But for what its worth, the source code is here:



https://github.com/couling/WebDAV-Daemon






share|improve this answer





























    up vote
    0
    down vote













    Hy,



    I was looking for same thing and I finally gathered a solution using apache2.
    I tried node solution using npm webdav-server and found out not all worked as nicely then using the apache module.
    Then I tried a npm dav-server based on jsDAV that could do better and could be a solution, but as I had to deal with lousy 3g connection I preferred apache and found out about multiple instance scripts.



    So here I share my experience.



    http://helpcenter.epages.com/Doc/doc/apache2/README.multiple-instances



    I run an instance per webdav user... not very scalable, but to work in a small team it's good enough.



    Replace myUser with your user.



    On Ubuntu 14.04



    sh /usr/share/doc/apache2/examples/setup-instance myUser


    So I run a apache process as user myUser defined in /etc/apache2-myUser/envars



    export APACHE_RUN_USER=myUser
    export APACHE_RUN_GROUP=myUser


    Edit ports.conf



    # If you proxy with nginx as I did better to limit to local interface
    listen localhost:8080
    # listen 8080


    I could not get PAM auth on ubuntu 14.04 to work so need to trick with basic auth as I then wrap it in https with nginx



    htpasswd -c /etc/apache2/htpasswd myUser


    Then /etc/apache2-myUser/sites-available/000-default.conf



    <VirtualHost *:8080>

    DocumentRoot /var/www/html

    Alias /$APACHE_RUN_USER /home/$APACHE_RUN_USER
    <Directory /home/$APACHE_RUN_USER>
    Require all granted
    Options +Indexes
    </Directory>

    <Location /$APACHE_RUN_USER>
    DAV On
    AuthType Basic
    AuthName "Restricted Area"
    AuthUserFile /etc/apache2/htpasswd
    Require valid-user
    </Location>

    DavLockDB /home/$APACHE_RUN_USER/.DavLock
    ErrorLog $APACHE_LOG_DIR/error.log
    CustomLog $APACHE_LOG_DIR/access.log combined
    </VirtualHost>


    then nginx proxy has a trick with header Destination
    passing icons folder lets webdav downgrade nicely on browsers



    server 
    listen 443 ssl http2;
    server_name exemple.com;

    location ~ ^/(myUser


    There is no obligation to use nginx as proxy, apache could very well do the https, but as I bumped into the proxy Destination issue I felt it was worth mentioning it.






    share|improve this answer





























      up vote
      -1
      down vote













      I'm also looking for a similar solution.



      Solution 1:
      Your desktop environment (Gnome, KDE) might have widgets to expose a certain folder by WebDAV. This will run as long as your desktop environment is running and is not a daemon solution.



      Solution 2:
      Nothing stops you from running Apache under your own user binding on unprivileged ports above 1024. Just write a configuration file or copy the ones bundled in your distribution to your $HOME/etc/httpd (just an example), add DAV-related config and run it as your own non-root user like:



      $ httpd -f $HOME/etc/httpd



      Running as your users ensures Apache will create files as you.






      share|improve this answer




















        Your Answer







        StackExchange.ready(function()
        var channelOptions =
        tags: "".split(" "),
        id: "106"
        ;
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function()
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled)
        StackExchange.using("snippets", function()
        createEditor();
        );

        else
        createEditor();

        );

        function createEditor()
        StackExchange.prepareEditor(
        heartbeatType: 'answer',
        convertImagesToLinks: false,
        noModals: false,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: null,
        bindNavPrevention: true,
        postfix: "",
        onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        );



        );













         

        draft saved


        draft discarded


















        StackExchange.ready(
        function ()
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f123001%2fis-there-a-multi-user-webdav-server-available-for-linux%23new-answer', 'question_page');

        );

        Post as a guest






























        6 Answers
        6






        active

        oldest

        votes








        6 Answers
        6






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes








        up vote
        1
        down vote













        This may be worth to read:
        Another input: multiple user folders and one shared folder
        http://hexeract.wordpress.com/2011/02/25/configure-a-webdav-enabled-webserver-for-multiple-user-folders-and-one-shared-folder/






        share|improve this answer




















        • This has the same problem as your other answer. Some users have ssh access. The files MUST be given correct (their own, not the web server's) unix file permissions and ownership (both user and group).
          – couling
          Oct 20 '14 at 10:49














        up vote
        1
        down vote













        This may be worth to read:
        Another input: multiple user folders and one shared folder
        http://hexeract.wordpress.com/2011/02/25/configure-a-webdav-enabled-webserver-for-multiple-user-folders-and-one-shared-folder/






        share|improve this answer




















        • This has the same problem as your other answer. Some users have ssh access. The files MUST be given correct (their own, not the web server's) unix file permissions and ownership (both user and group).
          – couling
          Oct 20 '14 at 10:49












        up vote
        1
        down vote










        up vote
        1
        down vote









        This may be worth to read:
        Another input: multiple user folders and one shared folder
        http://hexeract.wordpress.com/2011/02/25/configure-a-webdav-enabled-webserver-for-multiple-user-folders-and-one-shared-folder/






        share|improve this answer












        This may be worth to read:
        Another input: multiple user folders and one shared folder
        http://hexeract.wordpress.com/2011/02/25/configure-a-webdav-enabled-webserver-for-multiple-user-folders-and-one-shared-folder/







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Oct 19 '14 at 15:15









        Andre

        393




        393











        • This has the same problem as your other answer. Some users have ssh access. The files MUST be given correct (their own, not the web server's) unix file permissions and ownership (both user and group).
          – couling
          Oct 20 '14 at 10:49
















        • This has the same problem as your other answer. Some users have ssh access. The files MUST be given correct (their own, not the web server's) unix file permissions and ownership (both user and group).
          – couling
          Oct 20 '14 at 10:49















        This has the same problem as your other answer. Some users have ssh access. The files MUST be given correct (their own, not the web server's) unix file permissions and ownership (both user and group).
        – couling
        Oct 20 '14 at 10:49




        This has the same problem as your other answer. Some users have ssh access. The files MUST be given correct (their own, not the web server's) unix file permissions and ownership (both user and group).
        – couling
        Oct 20 '14 at 10:49












        up vote
        0
        down vote













        I used this one as guide to set up webdav:
        http://bernaerts.dyndns.org/linux/75-debian/62-debian-webdav-share



        yes, Apache is the group (www-data under Debian) but you can add users to that group, so I added one user. Did not test why you may not add other users....
        The webdav server using in principle this setup runs now for 3 yrs at my and my sons place (so 2 identical servers for the work of my son). Debian 6 is since some months the LTS version (till Feb-2016).



        Compared to Bernaerts I adapted in the Apache file:
        /etc/apache2/sites-available/default this part of configuration.



        Alias /webdav1 /data/webdav1

        <Location /webdav1>
        DAV on
        Authtype Basic
        Authname "webdav1"
        AuthUserFile /var/www/web1/passwd1.dav
        Require valid-user
        </location>


        So my files are no longer under www but in /data/webdav1 (through alias webdav1 to keep it short)
        For each hard disk I've created such a section and webdav1 becomes webdav2 for the 2nd hard disk in that section. We can build in max 10 hard disks in these servers, so 10 of these section in that config file. I added the user to www-data, davfs2 and davfs, so that the user can have access the webdav folder(s). So the user need to login and will be asked for the username and password.
        In fstab all the webdav data disks are listed so that mounting proceeds automaticallly.
        That part of fstab:




        /dev/sda3 /data/webdav1 ext3, user,auto 0 0







        share|improve this answer













        We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.













        • Sadly this doesn't solve the problem at all. The focus of this question was multi user. With this solution new files will be created as the apache user not the logged in user. In order to function apache all files must be www-data group with read / write permissions to that group. Since every user will have to be in that group every user will have to have access to read / write every other user's files. This solution simply doesn't wok for multiple users.
          – couling
          Oct 20 '14 at 10:45














        up vote
        0
        down vote













        I used this one as guide to set up webdav:
        http://bernaerts.dyndns.org/linux/75-debian/62-debian-webdav-share



        yes, Apache is the group (www-data under Debian) but you can add users to that group, so I added one user. Did not test why you may not add other users....
        The webdav server using in principle this setup runs now for 3 yrs at my and my sons place (so 2 identical servers for the work of my son). Debian 6 is since some months the LTS version (till Feb-2016).



        Compared to Bernaerts I adapted in the Apache file:
        /etc/apache2/sites-available/default this part of configuration.



        Alias /webdav1 /data/webdav1

        <Location /webdav1>
        DAV on
        Authtype Basic
        Authname "webdav1"
        AuthUserFile /var/www/web1/passwd1.dav
        Require valid-user
        </location>


        So my files are no longer under www but in /data/webdav1 (through alias webdav1 to keep it short)
        For each hard disk I've created such a section and webdav1 becomes webdav2 for the 2nd hard disk in that section. We can build in max 10 hard disks in these servers, so 10 of these section in that config file. I added the user to www-data, davfs2 and davfs, so that the user can have access the webdav folder(s). So the user need to login and will be asked for the username and password.
        In fstab all the webdav data disks are listed so that mounting proceeds automaticallly.
        That part of fstab:




        /dev/sda3 /data/webdav1 ext3, user,auto 0 0







        share|improve this answer













        We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.













        • Sadly this doesn't solve the problem at all. The focus of this question was multi user. With this solution new files will be created as the apache user not the logged in user. In order to function apache all files must be www-data group with read / write permissions to that group. Since every user will have to be in that group every user will have to have access to read / write every other user's files. This solution simply doesn't wok for multiple users.
          – couling
          Oct 20 '14 at 10:45












        up vote
        0
        down vote










        up vote
        0
        down vote









        I used this one as guide to set up webdav:
        http://bernaerts.dyndns.org/linux/75-debian/62-debian-webdav-share



        yes, Apache is the group (www-data under Debian) but you can add users to that group, so I added one user. Did not test why you may not add other users....
        The webdav server using in principle this setup runs now for 3 yrs at my and my sons place (so 2 identical servers for the work of my son). Debian 6 is since some months the LTS version (till Feb-2016).



        Compared to Bernaerts I adapted in the Apache file:
        /etc/apache2/sites-available/default this part of configuration.



        Alias /webdav1 /data/webdav1

        <Location /webdav1>
        DAV on
        Authtype Basic
        Authname "webdav1"
        AuthUserFile /var/www/web1/passwd1.dav
        Require valid-user
        </location>


        So my files are no longer under www but in /data/webdav1 (through alias webdav1 to keep it short)
        For each hard disk I've created such a section and webdav1 becomes webdav2 for the 2nd hard disk in that section. We can build in max 10 hard disks in these servers, so 10 of these section in that config file. I added the user to www-data, davfs2 and davfs, so that the user can have access the webdav folder(s). So the user need to login and will be asked for the username and password.
        In fstab all the webdav data disks are listed so that mounting proceeds automaticallly.
        That part of fstab:




        /dev/sda3 /data/webdav1 ext3, user,auto 0 0







        share|improve this answer














        I used this one as guide to set up webdav:
        http://bernaerts.dyndns.org/linux/75-debian/62-debian-webdav-share



        yes, Apache is the group (www-data under Debian) but you can add users to that group, so I added one user. Did not test why you may not add other users....
        The webdav server using in principle this setup runs now for 3 yrs at my and my sons place (so 2 identical servers for the work of my son). Debian 6 is since some months the LTS version (till Feb-2016).



        Compared to Bernaerts I adapted in the Apache file:
        /etc/apache2/sites-available/default this part of configuration.



        Alias /webdav1 /data/webdav1

        <Location /webdav1>
        DAV on
        Authtype Basic
        Authname "webdav1"
        AuthUserFile /var/www/web1/passwd1.dav
        Require valid-user
        </location>


        So my files are no longer under www but in /data/webdav1 (through alias webdav1 to keep it short)
        For each hard disk I've created such a section and webdav1 becomes webdav2 for the 2nd hard disk in that section. We can build in max 10 hard disks in these servers, so 10 of these section in that config file. I added the user to www-data, davfs2 and davfs, so that the user can have access the webdav folder(s). So the user need to login and will be asked for the username and password.
        In fstab all the webdav data disks are listed so that mounting proceeds automaticallly.
        That part of fstab:




        /dev/sda3 /data/webdav1 ext3, user,auto 0 0








        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Oct 19 '14 at 17:16

























        answered Oct 18 '14 at 19:51









        Andre

        393




        393



        We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.




        We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.












        • Sadly this doesn't solve the problem at all. The focus of this question was multi user. With this solution new files will be created as the apache user not the logged in user. In order to function apache all files must be www-data group with read / write permissions to that group. Since every user will have to be in that group every user will have to have access to read / write every other user's files. This solution simply doesn't wok for multiple users.
          – couling
          Oct 20 '14 at 10:45
















        • Sadly this doesn't solve the problem at all. The focus of this question was multi user. With this solution new files will be created as the apache user not the logged in user. In order to function apache all files must be www-data group with read / write permissions to that group. Since every user will have to be in that group every user will have to have access to read / write every other user's files. This solution simply doesn't wok for multiple users.
          – couling
          Oct 20 '14 at 10:45















        Sadly this doesn't solve the problem at all. The focus of this question was multi user. With this solution new files will be created as the apache user not the logged in user. In order to function apache all files must be www-data group with read / write permissions to that group. Since every user will have to be in that group every user will have to have access to read / write every other user's files. This solution simply doesn't wok for multiple users.
        – couling
        Oct 20 '14 at 10:45




        Sadly this doesn't solve the problem at all. The focus of this question was multi user. With this solution new files will be created as the apache user not the logged in user. In order to function apache all files must be www-data group with read / write permissions to that group. Since every user will have to be in that group every user will have to have access to read / write every other user's files. This solution simply doesn't wok for multiple users.
        – couling
        Oct 20 '14 at 10:45










        up vote
        0
        down vote













        Have you tried OwnCloud? Still just testing it myself, but it sounds like it fills your requirements: webdav works out-of-the-box.






        share|improve this answer




















        • Yes I have an instance of Owncloud but thats not what I'm looking for because the owncloud user (apache) owns all the files.
          – couling
          May 31 '16 at 9:04














        up vote
        0
        down vote













        Have you tried OwnCloud? Still just testing it myself, but it sounds like it fills your requirements: webdav works out-of-the-box.






        share|improve this answer




















        • Yes I have an instance of Owncloud but thats not what I'm looking for because the owncloud user (apache) owns all the files.
          – couling
          May 31 '16 at 9:04












        up vote
        0
        down vote










        up vote
        0
        down vote









        Have you tried OwnCloud? Still just testing it myself, but it sounds like it fills your requirements: webdav works out-of-the-box.






        share|improve this answer












        Have you tried OwnCloud? Still just testing it myself, but it sounds like it fills your requirements: webdav works out-of-the-box.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered May 30 '16 at 14:31









        Ryder

        26618




        26618











        • Yes I have an instance of Owncloud but thats not what I'm looking for because the owncloud user (apache) owns all the files.
          – couling
          May 31 '16 at 9:04
















        • Yes I have an instance of Owncloud but thats not what I'm looking for because the owncloud user (apache) owns all the files.
          – couling
          May 31 '16 at 9:04















        Yes I have an instance of Owncloud but thats not what I'm looking for because the owncloud user (apache) owns all the files.
        – couling
        May 31 '16 at 9:04




        Yes I have an instance of Owncloud but thats not what I'm looking for because the owncloud user (apache) owns all the files.
        – couling
        May 31 '16 at 9:04










        up vote
        0
        down vote



        accepted










        Having searched for a long time I just couldn't find one. There are many multi user servers but I couldn't find one which executed as the system user.



        So I wrote one myself. This is only tested as far as I can test it myself. But for what its worth, the source code is here:



        https://github.com/couling/WebDAV-Daemon






        share|improve this answer


























          up vote
          0
          down vote



          accepted










          Having searched for a long time I just couldn't find one. There are many multi user servers but I couldn't find one which executed as the system user.



          So I wrote one myself. This is only tested as far as I can test it myself. But for what its worth, the source code is here:



          https://github.com/couling/WebDAV-Daemon






          share|improve this answer
























            up vote
            0
            down vote



            accepted







            up vote
            0
            down vote



            accepted






            Having searched for a long time I just couldn't find one. There are many multi user servers but I couldn't find one which executed as the system user.



            So I wrote one myself. This is only tested as far as I can test it myself. But for what its worth, the source code is here:



            https://github.com/couling/WebDAV-Daemon






            share|improve this answer














            Having searched for a long time I just couldn't find one. There are many multi user servers but I couldn't find one which executed as the system user.



            So I wrote one myself. This is only tested as far as I can test it myself. But for what its worth, the source code is here:



            https://github.com/couling/WebDAV-Daemon







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Sep 13 '17 at 15:52

























            answered Sep 13 '17 at 15:41









            couling

            228210




            228210




















                up vote
                0
                down vote













                Hy,



                I was looking for same thing and I finally gathered a solution using apache2.
                I tried node solution using npm webdav-server and found out not all worked as nicely then using the apache module.
                Then I tried a npm dav-server based on jsDAV that could do better and could be a solution, but as I had to deal with lousy 3g connection I preferred apache and found out about multiple instance scripts.



                So here I share my experience.



                http://helpcenter.epages.com/Doc/doc/apache2/README.multiple-instances



                I run an instance per webdav user... not very scalable, but to work in a small team it's good enough.



                Replace myUser with your user.



                On Ubuntu 14.04



                sh /usr/share/doc/apache2/examples/setup-instance myUser


                So I run a apache process as user myUser defined in /etc/apache2-myUser/envars



                export APACHE_RUN_USER=myUser
                export APACHE_RUN_GROUP=myUser


                Edit ports.conf



                # If you proxy with nginx as I did better to limit to local interface
                listen localhost:8080
                # listen 8080


                I could not get PAM auth on ubuntu 14.04 to work so need to trick with basic auth as I then wrap it in https with nginx



                htpasswd -c /etc/apache2/htpasswd myUser


                Then /etc/apache2-myUser/sites-available/000-default.conf



                <VirtualHost *:8080>

                DocumentRoot /var/www/html

                Alias /$APACHE_RUN_USER /home/$APACHE_RUN_USER
                <Directory /home/$APACHE_RUN_USER>
                Require all granted
                Options +Indexes
                </Directory>

                <Location /$APACHE_RUN_USER>
                DAV On
                AuthType Basic
                AuthName "Restricted Area"
                AuthUserFile /etc/apache2/htpasswd
                Require valid-user
                </Location>

                DavLockDB /home/$APACHE_RUN_USER/.DavLock
                ErrorLog $APACHE_LOG_DIR/error.log
                CustomLog $APACHE_LOG_DIR/access.log combined
                </VirtualHost>


                then nginx proxy has a trick with header Destination
                passing icons folder lets webdav downgrade nicely on browsers



                server 
                listen 443 ssl http2;
                server_name exemple.com;

                location ~ ^/(myUser


                There is no obligation to use nginx as proxy, apache could very well do the https, but as I bumped into the proxy Destination issue I felt it was worth mentioning it.






                share|improve this answer


























                  up vote
                  0
                  down vote













                  Hy,



                  I was looking for same thing and I finally gathered a solution using apache2.
                  I tried node solution using npm webdav-server and found out not all worked as nicely then using the apache module.
                  Then I tried a npm dav-server based on jsDAV that could do better and could be a solution, but as I had to deal with lousy 3g connection I preferred apache and found out about multiple instance scripts.



                  So here I share my experience.



                  http://helpcenter.epages.com/Doc/doc/apache2/README.multiple-instances



                  I run an instance per webdav user... not very scalable, but to work in a small team it's good enough.



                  Replace myUser with your user.



                  On Ubuntu 14.04



                  sh /usr/share/doc/apache2/examples/setup-instance myUser


                  So I run a apache process as user myUser defined in /etc/apache2-myUser/envars



                  export APACHE_RUN_USER=myUser
                  export APACHE_RUN_GROUP=myUser


                  Edit ports.conf



                  # If you proxy with nginx as I did better to limit to local interface
                  listen localhost:8080
                  # listen 8080


                  I could not get PAM auth on ubuntu 14.04 to work so need to trick with basic auth as I then wrap it in https with nginx



                  htpasswd -c /etc/apache2/htpasswd myUser


                  Then /etc/apache2-myUser/sites-available/000-default.conf



                  <VirtualHost *:8080>

                  DocumentRoot /var/www/html

                  Alias /$APACHE_RUN_USER /home/$APACHE_RUN_USER
                  <Directory /home/$APACHE_RUN_USER>
                  Require all granted
                  Options +Indexes
                  </Directory>

                  <Location /$APACHE_RUN_USER>
                  DAV On
                  AuthType Basic
                  AuthName "Restricted Area"
                  AuthUserFile /etc/apache2/htpasswd
                  Require valid-user
                  </Location>

                  DavLockDB /home/$APACHE_RUN_USER/.DavLock
                  ErrorLog $APACHE_LOG_DIR/error.log
                  CustomLog $APACHE_LOG_DIR/access.log combined
                  </VirtualHost>


                  then nginx proxy has a trick with header Destination
                  passing icons folder lets webdav downgrade nicely on browsers



                  server 
                  listen 443 ssl http2;
                  server_name exemple.com;

                  location ~ ^/(myUser


                  There is no obligation to use nginx as proxy, apache could very well do the https, but as I bumped into the proxy Destination issue I felt it was worth mentioning it.






                  share|improve this answer
























                    up vote
                    0
                    down vote










                    up vote
                    0
                    down vote









                    Hy,



                    I was looking for same thing and I finally gathered a solution using apache2.
                    I tried node solution using npm webdav-server and found out not all worked as nicely then using the apache module.
                    Then I tried a npm dav-server based on jsDAV that could do better and could be a solution, but as I had to deal with lousy 3g connection I preferred apache and found out about multiple instance scripts.



                    So here I share my experience.



                    http://helpcenter.epages.com/Doc/doc/apache2/README.multiple-instances



                    I run an instance per webdav user... not very scalable, but to work in a small team it's good enough.



                    Replace myUser with your user.



                    On Ubuntu 14.04



                    sh /usr/share/doc/apache2/examples/setup-instance myUser


                    So I run a apache process as user myUser defined in /etc/apache2-myUser/envars



                    export APACHE_RUN_USER=myUser
                    export APACHE_RUN_GROUP=myUser


                    Edit ports.conf



                    # If you proxy with nginx as I did better to limit to local interface
                    listen localhost:8080
                    # listen 8080


                    I could not get PAM auth on ubuntu 14.04 to work so need to trick with basic auth as I then wrap it in https with nginx



                    htpasswd -c /etc/apache2/htpasswd myUser


                    Then /etc/apache2-myUser/sites-available/000-default.conf



                    <VirtualHost *:8080>

                    DocumentRoot /var/www/html

                    Alias /$APACHE_RUN_USER /home/$APACHE_RUN_USER
                    <Directory /home/$APACHE_RUN_USER>
                    Require all granted
                    Options +Indexes
                    </Directory>

                    <Location /$APACHE_RUN_USER>
                    DAV On
                    AuthType Basic
                    AuthName "Restricted Area"
                    AuthUserFile /etc/apache2/htpasswd
                    Require valid-user
                    </Location>

                    DavLockDB /home/$APACHE_RUN_USER/.DavLock
                    ErrorLog $APACHE_LOG_DIR/error.log
                    CustomLog $APACHE_LOG_DIR/access.log combined
                    </VirtualHost>


                    then nginx proxy has a trick with header Destination
                    passing icons folder lets webdav downgrade nicely on browsers



                    server 
                    listen 443 ssl http2;
                    server_name exemple.com;

                    location ~ ^/(myUser


                    There is no obligation to use nginx as proxy, apache could very well do the https, but as I bumped into the proxy Destination issue I felt it was worth mentioning it.






                    share|improve this answer














                    Hy,



                    I was looking for same thing and I finally gathered a solution using apache2.
                    I tried node solution using npm webdav-server and found out not all worked as nicely then using the apache module.
                    Then I tried a npm dav-server based on jsDAV that could do better and could be a solution, but as I had to deal with lousy 3g connection I preferred apache and found out about multiple instance scripts.



                    So here I share my experience.



                    http://helpcenter.epages.com/Doc/doc/apache2/README.multiple-instances



                    I run an instance per webdav user... not very scalable, but to work in a small team it's good enough.



                    Replace myUser with your user.



                    On Ubuntu 14.04



                    sh /usr/share/doc/apache2/examples/setup-instance myUser


                    So I run a apache process as user myUser defined in /etc/apache2-myUser/envars



                    export APACHE_RUN_USER=myUser
                    export APACHE_RUN_GROUP=myUser


                    Edit ports.conf



                    # If you proxy with nginx as I did better to limit to local interface
                    listen localhost:8080
                    # listen 8080


                    I could not get PAM auth on ubuntu 14.04 to work so need to trick with basic auth as I then wrap it in https with nginx



                    htpasswd -c /etc/apache2/htpasswd myUser


                    Then /etc/apache2-myUser/sites-available/000-default.conf



                    <VirtualHost *:8080>

                    DocumentRoot /var/www/html

                    Alias /$APACHE_RUN_USER /home/$APACHE_RUN_USER
                    <Directory /home/$APACHE_RUN_USER>
                    Require all granted
                    Options +Indexes
                    </Directory>

                    <Location /$APACHE_RUN_USER>
                    DAV On
                    AuthType Basic
                    AuthName "Restricted Area"
                    AuthUserFile /etc/apache2/htpasswd
                    Require valid-user
                    </Location>

                    DavLockDB /home/$APACHE_RUN_USER/.DavLock
                    ErrorLog $APACHE_LOG_DIR/error.log
                    CustomLog $APACHE_LOG_DIR/access.log combined
                    </VirtualHost>


                    then nginx proxy has a trick with header Destination
                    passing icons folder lets webdav downgrade nicely on browsers



                    server 
                    listen 443 ssl http2;
                    server_name exemple.com;

                    location ~ ^/(myUser


                    There is no obligation to use nginx as proxy, apache could very well do the https, but as I bumped into the proxy Destination issue I felt it was worth mentioning it.







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Sep 7 at 23:23









                    Rui F Ribeiro

                    36.8k1273117




                    36.8k1273117










                    answered Apr 10 at 6:38









                    Antony Gibbs

                    1013




                    1013




















                        up vote
                        -1
                        down vote













                        I'm also looking for a similar solution.



                        Solution 1:
                        Your desktop environment (Gnome, KDE) might have widgets to expose a certain folder by WebDAV. This will run as long as your desktop environment is running and is not a daemon solution.



                        Solution 2:
                        Nothing stops you from running Apache under your own user binding on unprivileged ports above 1024. Just write a configuration file or copy the ones bundled in your distribution to your $HOME/etc/httpd (just an example), add DAV-related config and run it as your own non-root user like:



                        $ httpd -f $HOME/etc/httpd



                        Running as your users ensures Apache will create files as you.






                        share|improve this answer
























                          up vote
                          -1
                          down vote













                          I'm also looking for a similar solution.



                          Solution 1:
                          Your desktop environment (Gnome, KDE) might have widgets to expose a certain folder by WebDAV. This will run as long as your desktop environment is running and is not a daemon solution.



                          Solution 2:
                          Nothing stops you from running Apache under your own user binding on unprivileged ports above 1024. Just write a configuration file or copy the ones bundled in your distribution to your $HOME/etc/httpd (just an example), add DAV-related config and run it as your own non-root user like:



                          $ httpd -f $HOME/etc/httpd



                          Running as your users ensures Apache will create files as you.






                          share|improve this answer






















                            up vote
                            -1
                            down vote










                            up vote
                            -1
                            down vote









                            I'm also looking for a similar solution.



                            Solution 1:
                            Your desktop environment (Gnome, KDE) might have widgets to expose a certain folder by WebDAV. This will run as long as your desktop environment is running and is not a daemon solution.



                            Solution 2:
                            Nothing stops you from running Apache under your own user binding on unprivileged ports above 1024. Just write a configuration file or copy the ones bundled in your distribution to your $HOME/etc/httpd (just an example), add DAV-related config and run it as your own non-root user like:



                            $ httpd -f $HOME/etc/httpd



                            Running as your users ensures Apache will create files as you.






                            share|improve this answer












                            I'm also looking for a similar solution.



                            Solution 1:
                            Your desktop environment (Gnome, KDE) might have widgets to expose a certain folder by WebDAV. This will run as long as your desktop environment is running and is not a daemon solution.



                            Solution 2:
                            Nothing stops you from running Apache under your own user binding on unprivileged ports above 1024. Just write a configuration file or copy the ones bundled in your distribution to your $HOME/etc/httpd (just an example), add DAV-related config and run it as your own non-root user like:



                            $ httpd -f $HOME/etc/httpd



                            Running as your users ensures Apache will create files as you.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Sep 12 '17 at 21:40









                            avibrazil

                            1




                            1



























                                 

                                draft saved


                                draft discarded















































                                 


                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function ()
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f123001%2fis-there-a-multi-user-webdav-server-available-for-linux%23new-answer', 'question_page');

                                );

                                Post as a guest













































































                                Popular posts from this blog

                                How to check contact read email or not when send email to Individual?

                                Bahrain

                                Postfix configuration issue with fips on centos 7; mailgun relay