Mount WebDav on Linux

Generally mounting requires root permisisons; the only way around this is via FUSE, but this way requires a matching entry in the system fstab.

Mount via root

sudo mount.davfs -o users,uid=systemuser,username=webdavuser http://foo.bar/folder /home/systemuser/folder

Problems

  1. Requires root permissions - once per call
  2. Unmounting requires root

Mount via user and password prompt

sudo echo " http://foo.bar/folder davfs2 defaults,noauto 0 0" >> /etc/fstab"
mount.davfs -o users,uid=systemuser,username=webdavuser /home/user/folder

Problems

  1. Requires root permissions - once per setup
  2. Reads password from stdin
  3. System config must be changed

Mount via user and without password prompt

sudo echo "http://foo.bar/folder davfs2 defaults,noauto 0 0" >> /etc/fstab"
echo "http://foo.bar/folder webdavusername webdavpassword" >> /home/systemuser/.davfs/secrets (or /etc/davfs2/secrets)
mount.davfs -o users,uid=systemuser /home/user/folder

Problems

  1. Requires root permissons - once per setup
  2. Webdav password is stored in a plaintext file
  3. System config must be changed
  4. Secrets file must be user-only readable/writable (chmod 0600)

Requirements of the actual implementation

  • Linux OS
  • Adminpermission
  • WebDAV URL notation: '<PROTOCOL>://<USERNAME>:<PASSWORD>@<WEBDAVRESOURCE>' E.g. https://wiegmann@powerfolder.com:FooBar123!@my.powerfolder.com/webdav/Test
  • Authorization adjustments on OS:  
    • sudo groupadd powerfolder
    • sudo gpasswd -a <OS USERNAME> powerfolder
    • sudo visudo -f /etc/sudoers.d/powerfolder
    • Insert this line in the opened file: "%powerfolder ALL = NOPASSWD:/bin/mount, /sbin/mount.davfs, /bin/umount" 
    • Re-login to your system

  • Packages to install: pkexec, bash, sudo, davfs