WebDAV with system authentication

I wanted to create a WebDAV directory to put some of my data in it and see what I can do with. One thing is that I want to protect the WebDAV directory with system user passwords.

Installation, as usual on a Debian system:

$ sudo apt-get install apache2 pwauth
$ sudo a2enmod dav_fs
$ sudo a2enmod authnz_external

Create the directories that will be accesible through WebDAV (one for user1 and one for user2) and give permissions to Apache's www-data user:

$ sudo mkdir /home/user1/webdav
$ sudo chown -R :www-data /home/user1/webdav
$ sudo chmod -R g+w /home/user1/webdav
$ sudo mkdir /home/user2/webdav
$ sudo chown -R :www-data /home/user2/webdav
$ sudo chmod -R g+w /home/user2/webdav

Create an Apache site /etc/apache2/sites-available/webdav:

<VirtualHost *:80>
  ServerName webdav.example.com
  ServerAdmin webmaster@example.com

  ErrorLog /var/log/apache2/error.log
  CustomLog /var/log/apache2/access.log combined
  LogLevel warn

  AddExternalAuth pwauth /usr/sbin/pwauth
  SetExternalAuthMethod pwauth pipe

  DocumentRoot /var/www

  Alias /user1 /home/user1/webdav
  <Directory /home/user1/webdav>
    DAV On
    AuthType Basic
    AuthBasicProvider external
    AuthExternal pwauth
    AuthName "Restricted area"
    Require valid-user
  </Directory>
  <Location /user1/>
    Require user user1
  </Location>

  Alias /user2 /home/user2/webdav
  <Directory /home/user2/webdav>
    DAV On
    AuthType Basic
    AuthBasicProvider external
    AuthExternal pwauth
    AuthName "Restricted area"
    Require valid-user
  </Directory>
  <Location /user2/>
    Require user user2
  </Location>
</VirtualHost>

Activate the site and restart Apache:

$ sudo a2ensite webdav
$ sudo service apache2 restart

Juste need to connect with your favorite WebDAV client… and that's where I didn't find anything suitable for me:

Comments Add one by sending me an email.