無需 Linux 掛載即可在 ownCloud 中掛載 SMB/CIFS 共享
透過外部儲存將 Windows 或 Samba 網路共用連接到 ownCloud,驗證憑證,並安全地排查無法存取的資料夾問題。
若要在 ownCloud Server 中存取 Windows 或 Samba 共享,請啟用「外部儲存支援」應用,然後從 ownCloud 管理頁面新增SMB/CIFS儲存掛載點。使用共享的伺服器位址、共享名稱和有效的 SMB 憑證;通常無需先在 Linux 系統中掛載共享mount.cifs。
此方法可在 ownCloud 文件介面中公開現有網路文件,同時保留 SMB 伺服器強制執行的權限。以下說明適用於版本 10.16 和 11.0 中記錄的經典 ownCloud Server 外部儲存接口,不適用於 ownCloud Infinite Scale。
您需要擁有 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 指令適用於所有容器鏡像。
在變更 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配置之前進行測試。
您無需啟用「允許使用者掛載外部儲存」即可建立管理員管理的共用。此單獨設定允許使用者建立自己的掛載點,其中可能包括連接到管理員通常不會公開的網路服務。請參閱 ownCloud 的外部儲存配置手冊。
在新儲存行中,提供連接資訊。以下範例將 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 伺服器執行唯讀存取。除非您的存取原則要求,否則請保持掛載點的共用功能處於停用狀態。
輸入必填欄位後,ownCloud 會自動儲存儲存記錄。綠色狀態指示燈表示連線已準備就緒;紅色或黃色指示燈則表示需要進一步排查問題。 ownCloud 會將故障的外部儲存標記為不可用十分鐘,因此在解決根本問題後,請點擊其狀態指示燈或重新載入管理頁面。
smbclient使用相同帳戶進行的測試進行比較。occ files:scan透過排程來解決此限制。將核心級 CIFS 掛載點暴露給 ownCloud 作為本機儲存通常不是正確的備選方案。 ownCloud 警告稱,如果此類檔案系統掛載點消失,它可能會偵測到一個空的本地目錄,並傳播刪除事件。請改用直接的 SMB/CIFS 後端;請參閱官方的本機儲存警告。
以「可用使用者」權限登入。開啟“文件”並找到“團隊專案”。瀏覽現有目錄並開啟一個小的測試檔案。如果 SMB 帳戶和 ownCloud 掛載點都允許寫入,請上傳一個無害的測試檔案並驗證它是否出現在 SMB 伺服器上;驗證透過後將其刪除。對於唯讀掛載點,請確認修改權限是否已被封鎖。
最後,檢查頁面重新載入後儲存行是否保持綠色,並確保授權群組以外的其他使用者無法看到該掛載點。這些檢查可以確認 ownCloud 可以存取正確的 SMB 共享,遠端帳戶擁有預期的存取權限,並且該掛載點僅對預期的使用者可見。
透過外部儲存將 Windows 或 Samba 網路共用連接到 ownCloud,驗證憑證,並安全地排查無法存取的資料夾問題。
刪除一個帳戶或所有使用者的所有已儲存的 ownCloud Server Classic 檔案版本,並區分完全清除和基於保留期限的過期。
以正確的順序檢查伺服器 URL、手機網路、HTTPS 端點和伺服器日誌,即可追蹤 ownCloud 行動連線被拒絕的原因。
將按需作業運行替換為 systemd 定時器,該定時器每 15 分鐘執行一次 ownCloud 支援的 occ system:cron 命令。
透過 Apache、Nginx 或反向代理程式追蹤 WebDAV 請求,然後使用經過驗證的 PROPFIND 測試確認 ownCloud 同步功能正常。
透過設定其規範 URL 並從伺服器本身檢查 DNS、HTTPS 和反向代理路由,修復 Nextcloud 缺少出站位址警告的問題。
透過本機 Unix 套接字配置 APCu 和 Redis,以實現 Nextcloud 快取和檔案鎖定,並提供目前和舊版 Nextcloud 的步驟。
檢查 Nextcloud 的 cron 模式,修復其 systemd 服務和計時器,並驗證後台作業在啟動後以及每隔五分鐘運行一次。
啟用可靠的 Nextcloud 檔案鎖定,選擇適當的 Redis 或 Valkey 後端,並驗證警告是否清除,同時避免並發檔案變更的風險。
使用最新更新、HTTPS 和 HSTS、精確的反向代理信任以及針對公共伺服器的檢查,修復 Nextcloud 掃描中常見的錯誤。