無需 Linux 掛載即可在 ownCloud 中掛載 SMB/CIFS 共享

若要在 ownCloud Server 中存取 Windows 或 Samba 共享,請啟用「外部儲存支援」應用,然後從 ownCloud 管理頁面新增SMB/CIFS儲存掛載點。使用共享的伺服器位址、共享名稱和有效的 SMB 憑證;通常無需先在 Linux 系統中掛載共享mount.cifs。

此方法可在 ownCloud 文件介面中公開現有網路文件,同時保留 SMB 伺服器強制執行的權限。以下說明適用於版本 10.16 和 11.0 中記錄的經典 ownCloud Server 外部儲存接口,不適用於 ownCloud Infinite Scale。

1. 檢查 SMB 共享和 ownCloud 的先決條件

您需要擁有 ownCloud 的管理員權限、一台可存取的 SMB 伺服器、一個您有權存取的共用資料夾,以及一個具有必要讀寫權限的 SMB 帳戶。請確保 ownCloud 和文件伺服器之間的 TCP 連接埠 445 可訪問,最好透過受信任的專用網路或 VPN 連接,而不是將 SMB 暴露在公共互聯網上。

舉個具體的例子,假設 SMB 伺服器是 `<server_name>` files.internal.example,共用是 `<share_name>` Projects,服務帳號是 `<service_account_name> ACME\oc-share`。那麼在 ownCloud 中顯示的資料夾將會是 ` Team Projects<folder_name>`。這些值是虛構的;請替換成您真實的伺服器詳細資料。

在傳統的 Linux 系統中,可能需要 Samba 用戶端和對應的 PHP SMB 用戶端擴充。例如,在基於 Debian 的主機上,安裝命令列測試客戶端:

sudo apt update
sudo apt install smbclient

在安裝擴充功能之前,請先檢查 ownCloud 使用的 PHP 版本和安裝方式。 ownCloud Server 10.16 Ubuntu 的安裝說明是php7.4-smbclient基於 PHP 7.4 的配置;請僅當該軟體包與您實際支援的 PHP 環境和軟體倉庫相符時才使用。啟用擴充功能後,請重新啟動執行 ownCloud 的 PHP 服務或 Web 伺服器,並使用 `npm run dev` 指令檢查模組載入情況php -m | grep -i smbclient。此指令檢查的是 CLI PHP;Web 進程可以有單獨的設定。

官方的 ownCloud Server 11.0 Docker 映像的SMB 文件指出執行時間 SMB 依賴項已包含在內,但該映像並未包含smbclient用於手動測試的命令。請勿假定相同的 host-package 指令適用於所有容器鏡像。

2. 測試從 ownCloud 伺服器的訪問

在變更 ownCloud 設定之前,請先從 ownCloud 主機或其網路環境中測試名稱解析、驗證以及共用本身。在具有以下功能的主機上smbclient,運行:

smbclient -L //files.internal.example -U 'ACME/oc-share'
smbclient //files.internal.example/Projects -U 'ACME/oc-share' -c 'ls'

出現提示時,請輸入 SMB 帳戶密碼,而不是將其輸入到命令列中。第一個命令列出可用共享;第二個命令檢查對特定共享的存取權限。列出共享並不代表擁有寫入權限。如果命令失敗,請在繼續操作之前確認伺服器名稱或 IP 位址、共享名稱拼字、憑證、網域、防火牆規則以及 Windows 或 Samba 伺服器上的有效權限。 ownCloud SMB/CIFS 指南也建議在smbclient配置之前進行測試。

3. 啟用外部儲存支援

  1. 使用管理員帳號登入 ownCloud。
  2. 開啟「設定」→「套用」,確保已啟用「外部儲存支援」 。
  3. 進入設定 → 管理 → 儲存(不同介面的導航標籤可能略有不同)。
  4. 如果頁面上出現該複選框,請啟用外部存儲,並使用「新增儲存」選擇SMB / CIFS。

您無需啟用「允許使用者掛載外部儲存」即可建立管理員管理的共用。此單獨設定允許使用者建立自己的掛載點,其中可能包括連接到管理員通常不會公開的網路服務。請參閱 ownCloud 的外部儲存配置手冊。

4. 設定 SMB/CIFS 掛載

在新儲存行中,提供連接資訊。以下範例將 SMB 共用名稱與使用者在 ownCloud 中看到的資料夾名稱分開。

ownCloud 字段範例值目的
資料夾名稱團隊專案文件介面中顯示的名稱
外部存儲SMB / CIFS直接使用 SMB 後端
主持人文件.內部.範例SMB 伺服器的主機名稱或 IP 位址
分享專案遠端共享名稱,不包含完整的 UNC 路徑
遠端子資料夾團隊(可選)將掛載範圍限制在共用資料夾中的現有資料夾。
領域ACME(如有需要)與帳戶關聯的網域或工作群組
驗證使用者名稱和密碼此共享的明確憑證
可供已選 ownCloud 組限制了支架的可見度。

oc-share如果您已在單獨的「域名」欄位中輸​​入域名,請將其作為使用者名稱輸入ACME。請勿將其輸入//files.internal.example/Projects到「主機」欄位中,也不要將共享名稱與可選的子資料夾混淆。對於遠端子資料夾,ownCloud 支援$user選擇與目前 ownCloud 使用者名稱相符的現有目錄;它不會建立該目錄。

對於一般服務帳戶,使用者名稱和密碼驗證方式很簡單,但其存取權限取決於該帳戶的 SMB 權限。如果使用者使用與其相符的 ownCloud 憑證進行 SMB 身份驗證,則「登入憑證並儲存到會話中」可能更合適。但是,ownCloud 文件中指出了會話憑證的一些重要限制:後台掃描和直接共用已掛載儲存的功能無法像使用儲存憑證那樣正常運作。因此,請根據實際的身份驗證和掃描需求進行選擇,而不僅僅考慮便利性。請參閱「外部儲存身份驗證機制」。

將可用權限限制為指定的 ownCloud 使用者或使用者群組;管理員建立的掛載點預設對所有使用者開放。如果員工只需要瀏覽文件,請啟用掛載點的「唯讀」選項,並同時強制 SMB 伺服器執行唯讀存取。除非您的存取原則要求,否則請保持掛載點的共用功能處於停用狀態。

5. 使用前請先解決掛載點不可用的問題

輸入必填欄位後,ownCloud 會自動儲存儲存記錄。綠色狀態指示燈表示連線已準備就緒;紅色或黃色指示燈則表示需要進一步排查問題。 ownCloud 會將故障的外部儲存標記為不可用十分鐘,因此在解決根本問題後,請點擊其狀態指示燈或重新載入管理頁面。

  • 驗證失敗:請重新檢查 SMB 密碼、網域、使用者名稱格式、帳戶鎖定狀態和共用權限。並與smbclient使用相同帳戶進行的測試進行比較。
  • 連線逾時:請檢查 DNS、路由、防火牆對 TCP 445 連接埠的訪問,以及 SMB 服務是否正在運作。如果 ownCloud 已容器化,請從同一容器網路進行測試。
  • 缺少 SMB/CIFS 後端:請確認外部儲存支援應用程式已啟用,並且所需的 SMB 擴充功能已載入到 ownCloud 的 PHP 執行時間中(如適用)。
  • 部分資料夾缺少:請檢查遠端子資料夾和 SMB 檔案系統權限。 ownCloud 群組分配無法授予遠端伺服器拒絕的存取權限。
  • 外部變更的檔案未顯示:請檢查掛載點的檔案系統檢查頻率、背景作業和掃描機制。僅會話 SMB 憑證會阻止背景掃描;請勿嘗試occ files:scan透過排程來解決此限制。

將核心級 CIFS 掛載點暴露給 ownCloud 作為本機儲存通常不是正確的備選方案。 ownCloud 警告稱,如果此類檔案系統掛載點消失,它可能會偵測到一個空的本地目錄,並傳播刪除事件。請改用直接的 SMB/CIFS 後端;請參閱官方的本機儲存警告。

6. 驗證文件中的共享

以「可用使用者」權限登入。開啟“文件”並找到“團隊專案”。瀏覽現有目錄並開啟一個小的測試檔案。如果 SMB 帳戶和 ownCloud 掛載點都允許寫入,請上傳一個無害的測試檔案並驗證它是否出現在 SMB 伺服器上;驗證透過後將其刪除。對於唯讀掛載點,請確認修改權限是否已被封鎖。

最後,檢查頁面重新載入後儲存行是否保持綠色,並確保授權群組以外的其他使用者無法看到該掛載點。這些檢查可以確認 ownCloud 可以存取正確的 SMB 共享,遠端帳戶擁有預期的存取權限,並且該掛載點僅對預期的使用者可見。

留下評論

無需 Linux 掛載即可在 ownCloud 中掛載 SMB/CIFS 共享

透過外部儲存將 Windows 或 Samba 網路共用連接到 ownCloud,驗證憑證,並安全地排查無法存取的資料夾問題。

使用 occ 指令安全地清除 ownCloud 檔案版本

使用 occ 指令安全地清除 ownCloud 檔案版本

刪除一個帳戶或所有使用者的所有已儲存的 ownCloud Server Classic 檔案版本,並區分完全清除和基於保留期限的過期。

ownCloud 行動連線被拒絕?請檢查 URL 和可及性

ownCloud 行動連線被拒絕?請檢查 URL 和可及性

以正確的順序檢查伺服器 URL、手機網路、HTTPS 端點和伺服器日誌,即可追蹤 ownCloud 行動連線被拒絕的原因。

使用 Systemd 定時器可靠地執行 ownCloud 後台作業

將按需作業運行替換為 systemd 定時器,該定時器每 15 分鐘執行一次 ownCloud 支援的 occ system:cron 命令。

透過尋找故障路由來恢復 ownCloud WebDAV 同步

透過 Apache、Nginx 或反向代理程式追蹤 WebDAV 請求,然後使用經過驗證的 PROPFIND 測試確認 ownCloud 同步功能正常。

設定 Nextcloud 的公共 URL,以便它可以存取自身。

透過設定其規範 URL 並從伺服器本身檢查 DNS、HTTPS 和反向代理路由,修復 Nextcloud 缺少出站位址警告的問題。

在 Ubuntu 24.04 上設定 Nextcloud Redis 快取

在 Ubuntu 24.04 上設定 Nextcloud Redis 快取

透過本機 Unix 套接字配置 APCu 和 Redis,以實現 Nextcloud 快取和檔案鎖定,並提供目前和舊版 Nextcloud 的步驟。

使用 Systemd 定時器自動執行 Nextcloud Cron

檢查 Nextcloud 的 cron 模式,修復其 systemd 服務和計時器,並驗證後台作業在啟動後以及每隔五分鐘運行一次。

使用 Redis 清除 Nextcloud 的檔案鎖定警告

啟用可靠的 Nextcloud 檔案鎖定,選擇適當的 Redis 或 Valkey 後端,並驗證警告是否清除,同時避免並發檔案變更的風險。

如何才能獲得 Nextcloud A+ 安全評級

如何才能獲得 Nextcloud A+ 安全評級

使用最新更新、HTTPS 和 HSTS、精確的反向代理信任以及針對公共伺服器的檢查,修復 Nextcloud 掃描中常見的錯誤。