將 ownCloud 檔案轉移給新所有者而不丟失共享份額

若要將目前屬於即將離職或變更的 ownCloud 帳戶的檔案的擁有者變更為其他用戶,請使用伺服器端occ files:transfer-ownership命令。該命令預設會移動所有已擁有的文件,以及要移出的共享和相關元資料;--path如果您只需要傳輸一個資料夾,請使用此命令。 Web 共用面板會變更存取權限,但它並非所有權轉移機制。

選擇合適的傳輸範圍

在 ownCloud Classic 中,所有權決定了原始文件位於哪個使用者的個人文件空間,以及哪個帳戶控制外發共享。即使接收者擁有編輯權限,他們仍然是接收者;授予「可以編輯」權限並不意味著該使用者就擁有了檔案所有權。在執行傳輸之前,請確定新擁有者需要的是整個帳戶的文件,還是只需要特定的專案資料夾。

  • 遷移所有檔案:當帳戶停用且擁有的檔案和要移出的共用檔案必須一起移轉時,請使用此選項。此選項範圍較窄,但遷移的內容可能比單一團隊交接所需的內容更多。
  • 傳輸單一資料夾:用於--path來源使用​​者檔案下的特定目錄。這樣可以縮小範圍,但請在操作前檢查嵌套內容和共享關係。
  • 保持團隊共享資料夾的持久性:對於持續更新的團隊內容,ownCloud 建議使用一個專屬的所有者帳戶,其共享資料夾在人員變更後仍保持不變。這是一種針對未來文件的管理策略,而非追溯轉移現有所有者的文件。

ownCloud Server 11官方共享文件指出,該命令會傳輸已發出的共享文件及其關聯的元數據,例如標籤和評論。接收的共用檔案不會被傳輸,因為這些檔案的擁有者是其他使用者。回收站中的內容也不會被傳輸。

準備帳目和數據

請務必準確確認來源使用者和目標使用者 ID。這些是帳戶標識符,不一定是顯示名稱或電子郵件地址。確保目標帳戶存在,且其配額足以容納傳輸的資料。雖然 ownCloud 的命令參考文件指出,在某些版本中可能會建立缺少的目標用戶,但先建立並確認目標帳戶可以避免使用非預期身分傳輸資料。

請在使用者未編輯來源檔案時安排此操作。請對 ownCloud 資料和資料庫進行已驗證的備份,並確保您了解復原步驟。請勿直接在資料目錄中複製、重新命名或移動檔案:資料庫會追蹤檔案元資料和所有權。請按照此方法操作occ,以便 ownCloud 能夠持續更新其記錄和共用內容。

ownCloud 目前的 Classic 文件分別包含 Server 11.0 和 10.16 的獨立手冊。 Server 11 的文檔介紹了基於 Docker 的安裝;而 10.16 的範例則使用了傳統的 PHP 安裝。請使用與已部署版本相符的命令格式,而不是盲目複製命令。

運行所有權轉移

適用於 Docker 中的 ownCloud Classic 11

從包含 Compose 部署的目錄中,將來源帳戶中的所有檔案傳輸到目標帳戶:

docker compose exec owncloud occ files:transfer-ownership \
  source-user \
  destination-user

將兩個範例 ID 替換為實際的 ownCloud 使用者 ID。檢查命令輸出以及任何關於跳過共享的提示資訊。除非您已閱讀並接受相關後果,否則請勿新增自動接受跳過共享的選項。

適用於安裝了 PHP 的 ownCloud Classic 10.16

occ從 ownCloud 安裝目錄以 web 伺服器使用者身分執行。在許多 Debian 或 Ubuntu 部署中,該使用者是www-data:

sudo -u www-data php /var/www/owncloud/occ files:transfer-ownership \
  source-user \
  destination-user

請調整可執行檔路徑和帳戶以符合您的主機。如果命令報告未知選項或命令,請查閱已安裝版本的 ownCloud 命令參考文件並進行操作,occ files:transfer-ownership --help然後再重試。

將傳輸限制在指定資料夾中

若要移動名為「專案目錄」Projects而不是「每個檔案」的專案目錄,請在使用者 ID 前新增路徑選項:

docker compose exec owncloud occ files:transfer-ownership \
  --path="Projects" \
  source-user \
  destination-user

路徑必須存在於目標位置data/<source-user>/files。 ownCloud 不會簡單地將資料夾放置在目標位置的相同相對路徑下。它會將傳輸的內容儲存在transferred from <source-user> on <timestamp>目標使用者檔案目錄下一個名為 `<path_to_path>` 的目錄中。命令完成後,請告知接收方文件的位置。有關可用選項,請參閱ownCloud 10.16 occ 命令參考文件。

要知道何時該指令是錯誤的工具

傳輸並非對來源使用者可見的每個項目都執行通用的「更改所有者」按鈕。傳入共享中的檔案屬於其原始共享者,不會被移動。如果所需內容是傳入的共享文件,請與該所有者協調,或使用已批准的工作流程建立單獨的副本;副本是一個獨立的文件,可能無法保留原始共享歷史記錄或元資料。

此外,儲存方面也存在一些限制。 ownCloud 文件警告不要在配置了多個儲存桶的 S3 主儲存體上使用此命令,因為檔案共用可能會遺失。企業級文件生命週期歸檔也存在已記錄的傳輸限制。如果有上述任何一種情況,請先查閱特定版本的文檔,並在一個具有代表性的非生產帳戶上測試該操作,然後再執行其他操作。

如果傳輸過程中出現異常或提前停止,請不要立即重複執行。 ownCloud 共用指南建議occ files:troubleshoot-transfer-ownership --uid <uid>同時使用來源使用者 ID 和目標使用者 ID 執行命令,以調查並修復傳輸狀態。在確定結果之前,請保留原始日誌和備份。

在刪除來源帳戶之前,請先驗證結果。

以目標使用者身分登入,並確認傳輸的資料夾出現在產生的「傳輸來源」目錄下。開啟代表性文件,檢查預期的資料夾、標籤、註釋和共用資料夾。請一位預期接收者透過現有共用資料夾驗證存取權限。然後檢查來源帳戶中剩餘的已擁有檔案或共用資料夾,並檢查命令輸出中是否存在遺漏的項目。

只有在目標擁有者和相關協作者確認存取權限後,才能刪除或停用來源帳戶。 ownCloud 將檔案與其擁有者關聯,因此刪除使用者可能會刪除該使用者剩餘的檔案和共用。傳輸命令不會移動回收站或傳入的共享,這些限制應包含在交接清單中。

留下評論

安全地清除 ownCloud Apache .htaccess 警告

安全地清除 ownCloud Apache .htaccess 警告

僅對 ownCloud 的 Web 根目錄設定 AllowOverride All,驗證活動的 Apache 虛擬主機,然後安全地重新載入以恢復 .htaccess 規則。

設定 ownCloud 企業審計並驗證日誌

啟用 ownCloud 的企業審計應用程序,將 admin_audit 事件路由到受保護的日誌文件,並確認正在記錄真實使用者的操作。

使用 OIDC 將 ownCloud Infinite Scale 連接到 Keycloak

使用 OIDC 將 ownCloud Infinite Scale 連接到 Keycloak

讓 Keycloak 的 realm 頒發者、Web 用戶端和使用者聲明保持一致,以便 ownCloud Infinite Scale 能夠可靠地在 Web 和行動用戶端上登入使用者。

將 ownCloud 檔案轉移給新所有者而不丟失共享份額

使用 ownCloud 的 occ 指令傳輸擁有的檔案和要傳出的共享,以了解哪些內容會保留下來,並在刪除舊帳戶之前驗證存取權限。

透過安全地管理索引來加速 ownCloud 10 查詢

了解何時需要關注 ownCloud 10 資料庫索引,如何安全地應用受支援的架構更新,以及何時查詢調優或資料庫變更是更好的解決方案。

無需 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 同步功能正常。