davfs2 - Arch Linux 中文维基

跳至內容

# davfs2

出自 Arch Linux 中文维基

相關文章

- WebDAV

翻譯狀態：

- 本文（或部分內容）譯自 Davfs2，最近一次同步於 2026-03-09，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

davfs2 是一個用於掛載 WebDAV 資源的 Linux 文件系統。WebDAV 是 HTTP/1.1 的一個擴展，用於遠程協作共享網絡文件資源。

## 安裝 davfs2

安裝軟體包 davfs2包。

## 掛載 WebDAV 資源

### 配置和掛載參數

配置文件分為系統級的 `/etc/davfs2/davfs2.conf` 和用戶級的 `~/.davfs2/davfs2.conf`。普通用戶調用時，會同時讀取兩個配置文件，但用戶配置的優先級高於系統配置。可以對常規、WebDAV 相關、緩存相關、調試等內容進行配置，具體語法請參見 davfs2.conf(5)。

掛載參數可以用於定義配置文件路徑、文件系統的所有者和用戶組，以及其他訪問權限相關的選項。要查詢所有可用的參數，執行以下命令：

    $ mount.davfs -h

也可參見 mount.davfs(8) 了解詳細。

### 使用命令行

要掛載 WebDAV 資源，請使用 `mount`，而非直接使用 `mount.davfs`。

    # mount -t davfs http(s)://address:<port>/path /mount/point

注意：只有在系統級配置文件中定義的 `dav_group` 用戶組內的普通成員才能掛載 davfs2 文件系統。確保系統級配置文件中的 `dav_group` 已經被啟用並被指定了可用的用戶組。

### 使用 systemd

要使用Systemd 掛載：

    /etc/systemd/system/mnt-webdav-service.mount

    [Unit]
    Description=Mount WebDAV Service
    After=network-online.target
    Wants=network-online.target

    [Mount]
    What=http(s)://address:<port>/path
    Where=/mnt/webdav/service
    Options=uid=1000,file_mode=0664,dir_mode=2775,grpid
    Type=davfs
    TimeoutSec=15

    [Install]
    WantedBy=multi-user.target

也可以創建一個 systemd 自動掛載單元來設置超時時間。

    /etc/systemd/system/mnt-webdav-service.automount

    [Unit]
    Description=Mount WebDAV Service

    [Automount]
    Where=/mnt/webdav/service
    TimeoutIdleSec=300

    [Install]
    WantedBy=remote-fs.target

要了解更多關於 systemd 掛載單元的內容，參見 Fstab#通過_systemd_自動掛載。

### 使用 fstab

要定義如何將 WebDAV 資源掛載在文件系統上，請添加一個以下格式的 fstab 條目：

    /etc/fstab

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

其中，username 是所掛載的文件系統的所有者，可以是數字 ID 或是用戶名。僅有 root 用戶能以與掛載用戶不同的 UID 進行掛載。掛載參數 `_netdev` 可以用於自動掛載網絡驅動器。

## 提示與技巧

### 保存認證信息

創建一個密鑰文件以保存 WebDAV 服務的認證信息。對於普通用戶，使用 `~/.davfs2/secrets`；對於 root 用戶，使用 `/etc/davfs2/secrets`：

    /etc/davfs2/secrets

    https://webdav.example/path davusername davpassword

請確保密鑰文件的權限正確。對於 root 用戶：

    # chmod 600 /etc/davfs2/secrets
    # chown root:root /etc/davfs2/secrets

對於普通用戶：

    $ chmod 600 ~/.davfs2/secrets

## 常見問題

### 無法創建/複製文件，同時可能卡住

如果無法創建/複製文件，同時可能卡住，請編輯#配置和掛載參數，將 `use_locks 0` 加入到配置中。默認配置 `1` 會在打開和寫入文件時在伺服器上加鎖。

### 密碼和密鑰文件

如果密碼中含有如 `\` 或 `"` 這樣的特殊字符，請為其添加轉義符 `\`。

### 網絡已連通但域名解析失敗

有時 `network-online.target` 已經成功但 WebDAV 伺服器的域名仍未被解析。可以手動等待域名解析成功。

首先，配置好#使用 fstab，然後在 15 秒重複使用 ping 測試是否能訪問伺服器。訪問成功時，再進行掛載：

    /etc/systemd/system/mnt-webdav-service.service

    [Unit]
    Description=Mount WebDAV Service
    After=network-online.target
    Wants=network-online.target

    [Service]
    Type=oneshot
    ExecStart=bash -c 'for i in {1..15}; do if ping -c 1 mywebdav.server.url; then mount /path/to/mountpoint; break; else sleep 1; fi; done'
    ExecStop=umount /path/to/mountpoint
    RemainAfterExit=true

    [Install]
    WantedBy=default.target

建議將其配置為用戶單元。

### 掛載 WebDAV 資源時報錯 'different mount options in /etc/fstab'

可能是以下原因導致：

1. WebDAV 資源及其掛載點已經在 /etc/fstab 中定義
2. 掛載點已經被作為一個參數傳遞給 'mount' 命令（即使掛載點與 /etc/fstab 中相同）

因此，請不要在掛載時傳遞掛載點，而是自動使用 /etc/fstab 中的值。例如：

    $ mount -t davfs https://mywebdav mymountpoint # 錯誤
    與 /etc/fstab 中的掛載參數不同
    $ mount -t davfs https://mywebdav # 正確

## 參見

- https://ajclarkson.co.uk/blog/auto-mount-webdav-raspberry-pi/[失效連結 2025-03-15 ⓘ]

分類：​

- 文件系統
- WebDAV
- 包含失效連結的頁面

davfs2
新增話題