需求:在 debian12 上利用 webdav 挂载坚果云
- 安装 davfs2
debian 12 安装命令:
sudo apt install davfs2挂载和卸载:
# root 权限挂载
sudo mount -t davfs <WebDAV服务器URL> /mnt/webdav
sudo mount.davfs <WebDAV服务器URL> /mnt/webdav
# 卸载
sudo umount /mnt/webdav- 设置非特权用户登陆
sudo dpkg-reconfigure davfs2 # 选择非特权用户登陆# 复制配置文件到 ~/.davfs2
mkdir ~/.davfs2
cd /etc/davfs2/
sudo cp davfs2.conf secrets ~/.davfs2
# 修改用户名和组
cd ~/.davfs2
sudo chown username:username davfs2.conf secrets- 配置免密码挂载
编辑
~/.davfs2/secrets文件以将凭据添加到远程 WebDAV 目录。在文件末尾添加一行,样式如下:
https://<WebDav URI> <username> <password>设置权限:
chmod 600 ~/.davfs2/secrets修改
~/.davfs2/davfs2.conf将这一行取消注释secrets ~/.davfs2/secrets仅使用用户 secrets 文件配置修改
~/.davfs2/davfs2.conf忽略 dav 头请求头
# 将 ignore_dav_header 这一行取消注释并将值改为 1
ignore_dav_header 1这是因为坚果云的 WebDAV 服务器不支持 Class 1,修改之后可以使 davfs 跳过 Class 1 的验证
- 在
/etc/fstab添加行,类似https://<WebDav URI> /mnt/dav/ davfs user,noauto,file_mode=600,dir_mode=700 0 1
# 使用 `mount /mnt/webdav` 自动挂载 `https://dav.jianguoyun.com/dav/` 到 `/mnt/webdav`
https://dav.jianguoyun.com/dav/ /mnt/webdav/ davfs user,noauto,file_mode=600,dir_mode=700 0 1重新加载 systemd systemctl daemon-reload
将用户添加到 davfs2 组 sudo usermod -a -G davfs2 your_user
注销并重新登陆
执行命令挂载网盘mount /mnt/webdav
- 开机自动挂载
- 以 root 权限为所有用户开机自动挂载
# 开机联网后自动挂载,默认是以 root 权限运行的,需要在 /etc/davfs2/secrets 增加登陆信息
https://dav.jianguoyun.com/dav/ /mnt/webdav/ davfs user,_netdev,auto,file_mode=600,dir_mode=700 0 1- 仅当前用户登陆时自动挂载
在~/.config/systemd/user 增加 systemd 服务文件 webdav_mount.service ,添加以下内容
[Unit]
Description=WebDAV Connection Service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
RemainAfterExit=yes
ExecStart=mount /mnt/webdav
[Install]
WantedBy=default.target重新加载用户 systemd ,systemctl --user daemon-reload
启用 webdav_mount.service ,systemctl --user enable webdav_mount.service
以上配置内容是,在开机联网后自动执行 mount /mnt/webdav,RemainAfterExit=yes 是为了让 systemd 在执行命令后不退出,否则 systemd 会在执行命令后自动 umount