Linux挂载webdav网盘

简单介绍在Linux中挂载使用WebDav网盘的方法。

简单介绍在Linux中挂载使用WebDav网盘的方法。

1. 安装davfs2

挂载WebDav首先需要安装davfs2,在debian系中可以使用apt命令安装

sudo apt install davfs2

安装过程中会提示是否允许非管理员用户挂载webdav,可根据需要选择。后期也可以使用sudo dpkg-reconfigure davfs2重新修改设置。

webdav网盘的挂载有多种方式,例如使用mount命令、利用fstab挂载,还有利用systemd挂载。本文仅涉及两种方式。

2. 使用mount命令手动挂载

无论那种挂载方式都需要有一个挂载点,例如可以新建一个/mnt/dav文件夹作为挂载点

mkdir /mnt/dav

使用mount命令挂载网盘,其中用-t参数设置挂载文件系统类型为davfs,https://webdav.example/path是webdav的地址。根据提示输入账户、密码即可完成挂载。

sudo mount -t davfs https://webdav.example/path /mnt/dav

这里需要使用管理员权限完成,虽然已经将用户添加到davfs2用户组,并且重新登陆用户或使用newgrp - davfs2切换用户组,也是不行会提示:must be superuser to use mount.

3. 使用fstab挂载

利用fstab配置可以实现普通用户挂载或者开机自动挂载webdav网盘。

3.1 普通用户手动挂载

首先需要将指定用户添加到davfs2用户组

 sudo usermod -aG davfs2 username

/etc/fstab中添加如下行,其中uidgid用于指定挂载后文件所属用和用户组,noauto表示使用mount -a命令不会挂载该设备,_netdev表示该设置挂载需要依赖网络。然后普通用户可以使用mount /mnt/dav命令即可挂载,其中/mnt/dav就是/etc/fstab中设置的挂载点。

https://webdav.example/path /mnt/dav davfs rw,user,uid=username,gid=username,noauto,_netdev 0 0 

这里使用mount挂载时依然会要求输入用户名密码,可以在/etc/davfs2/secrets~/.davfs2/secrets按照如下格式添加地址、用户名和密码,然后将文件的读写权限设置为600。之后用户挂载时便不需要输入密码。/etc/davfs2/secrets中的设置对所有用户有效,~/.davfs2/secrets仅对当前用户有效。

touch ~/.davfs2/secrets
echo "https://webdav.example/path davusername davpassword" >> ~/.davfs2/secrets
chmod 600 ~/.davfs2/secrets

3.2 自动挂载

如果有在设备启动时自动挂载的需要,可以在/etc/fstab的配置中添加x-systemd.automount,如下配置x-systemd.device-timeout=10等待相应时间为10s。

https://webdav.example/path /mnt/dav davfs rw,user,uid=username,gid=username,noauto,x-systemd.automount,x-systemd.device-timeout=10,_netdev 0 0 

使用自动挂载时一定需要在/etc/davfs2/secrets中添加地址、用户名和密码,并将文件权限值设置为600

echo "https://webdav.example/path davusername davpassword" | sudo tee -a /etc/davfs2/secrets
sudo chmod 600 /etc/davfs2/secrets

这里不能再使用mount命令挂载,需要使用systemctl restart mnt-dav.automount命令,其中服务名称mnt-dav.automount/etc/fstab中设置的挂载地址/mnt/dav构成。

sudo systemctl daemon-reload # 修改fstab后需要使用
sudo systemctl restart mnt-dav.automount

解除挂载使用如下命令

sudo systemctl stop home-xw-dav.automount

  1. davfs2 - ArchWiki
  2. How To Install ownCloud 7 On Ubuntu 14.04
  3. Mounting a WebDAV directory in Linux (Ubuntu)
  4. Fstab - Use SystemD automount - Manjaro
  5. fstab - ArchWiki