如何才能獲得 Nextcloud A+ 安全評級
使用最新更新、HTTPS 和 HSTS、精確的反向代理信任以及針對公共伺服器的檢查,修復 Nextcloud 掃描中常見的錯誤。
若要自動清空 Nextcloud 的已刪除文件,請設定最大保留期限,並確保 Nextcloud 後台任務按計畫執行。例如,設定trashbin_retention_obligation自動auto, 30刪除超過 30 天的已刪除文件,然後每五分鐘執行一次 Nextcloud 建議的系統 cron 任務。僅靠預設auto策略無法保證在第 30 天立即刪除檔案。
自動刪除是永久性的。請選擇一個保留期限,以便用戶有時間恢復錯誤,並對任何必須在離開回收站後仍可恢復的內容保留備份。
Nextcloud 35 的管理員文件中提到auto,已刪除的項目至少保留 30 天,之後如果儲存空間不足,則允許將其刪除。如果不需要空間,項目可能會保留超過 30 天。這種機制使得回收站成為一個恢復區域,而不是一個嚴格的 30 天刪除期限。
| 保單價值 | 它的意義 | 使用它 |
|---|---|---|
auto | 物品至少保留 30 天;如果之後需要騰出空間,再移除。 | 您需要預設的復原視窗和基於空間的清理功能。 |
auto, 30 | 自動刪除超過 30 天的項目;如果需要騰出空間,項目也可能提前刪除。 | 您希望最大年齡為 30 天。 |
30, 90 | 項目至少保留 30 天,90 天後刪除。 | 你需要設定恢復視窗和保留期限上限。 |
disabled | 不要自動清理垃圾桶。 | 您有單獨的保留流程,並打算保留已刪除的項目。 |
如果由於使用者刪除的檔案過多導致配額超額,則保留策略並非絕對有效:Nextcloud 可能會覆蓋已配置的策略,並清理檔案直至達到配額要求。在將策略套用至有配額限制的帳戶之前,請務必查看目前的回收站保留策略文件。
occ請從 Nextcloud 安裝目錄以 HTTP 使用者身分執行,以確保檔案權限一致。在 Debian 或 Ubuntu 系統中,該使用者通常為www-data`/etc/Nextcloud`,安裝路徑通常為 `/etc/ /var/www/nextcloudNextcloud`。在其他系統或容器中,請替換為您自己的實際使用者和路徑。
cd /var/www/nextcloud
sudo -E -u www-data php occ config:system:set trashbin_retention_obligation --value='auto, 30'

此設定儲存在 Nextcloud 的系統配置中。若要查看目前值,請執行:
sudo -E -u www-data php occ config:system:get trashbin_retention_obligation
輸出結果應顯示auto, 30。如果您希望採用不同的策略,請使用上表並輸入對應的值。該30, 90選項旨在將項目保留至少 30 天,並在 90 天後刪除;配額限制仍可能強制提前清理。
Nextcloud 將回收站過期作為後台任務運行。管理員手冊指出,回收站後台任務每 30 分鐘執行一次,但這仍取決於您的安裝環境中的後台任務執行程式是否被呼叫。 Nextcloud 建議使用作業系統自帶的 cron 任務來執行定期任務;其預設的 AJAX 模式可靠性較低,因為任務僅在使用者造訪網站時執行。
將 Nextcloud 設定為 cron 模式:
sudo -E -u www-data php occ background:cron

然後編輯 Web 伺服器使用者的 crontab 檔案。在典型的 Debian 或 Ubuntu 主機上:
sudo crontab -u www-data -e
新增此行程式碼,如果您的安裝位置不同,請變更 PHP 執行檔或 Nextcloud 路徑:
*/5 * * * * php -f /var/www/nextcloud/cron.php

此排程任務每五分鐘觸發一次 Nextcloud 的背景執行程式;各個任務各自執行獨立的排程任務。對於容器部署,請使用文件中提供的 cron 服務或排程任務,並cron.php以 Nextcloud Web 使用者身分執行。如果您的鏡像或平台已經執行了該任務,請勿盲目新增第二個任務。
首先驗證策略和計劃任務。使用以下命令檢查策略occ config:system:get trashbin_retention_obligation,然後列出排程任務:
sudo crontab -u www-data -l

在 Nextcloud 的管理設定中,確認後台作業已設定為Cron,且上次作業執行時間已遞增。在配置的最大保留期限過後,檢查「已刪除檔案」中是否存在可以安全刪除的舊測試項目。過期作業會按計畫運行,因此清理工作不一定會在達到保留期限時立即完成。
若要使用自訂保留策略進行一次性測試,請執行保留感知命令:
sudo -E -u www-data php occ trashbin:expire --quiet
在目前版本的 Nextcloud 中,trashbin:expire此操作會套用配置的保留期限。使用預設auto策略時,該指令會在未過期項目的情況下退出;預設的自動過期由後台作業處理。請勿替換為trashbin:cleanup --all-users:該命令會永久刪除所有使用者的所有已刪除文件,無論文件創建時間長短,並且並非常規的保留設定。
occ config:system:get trashbin_retention_obligation您預期的保留期限相符。cron.php路徑。如果上次執行時間沒有更新,請在變更保留值之前,先排查系統 cron 任務、PHP CLI 路徑、Web 伺服器使用者和 Nextcloud 路徑的問題。如果後台運行程式從未執行,即使策略正確也無法清除任何內容。
使用最新更新、HTTPS 和 HSTS、精確的反向代理信任以及針對公共伺服器的檢查,修復 Nextcloud 掃描中常見的錯誤。
為需要加密的儲存配置 Nextcloud SSE,保護加密金鑰,並在加密現有文件之前測量傳輸和 CPU 影響。
將 Nextcloud 的檔案搜尋連接到 Elasticsearch,索引文件內容,並選擇適合您的伺服器和安全需求的設定。
配置 Nextcloud 在規定的保留期後刪除已刪除的文件,可靠地安排後台作業,並避免執行清除所有使用者回收站的命令。
安全地執行 Nextcloud 的 OCC 修復程序,預覽資料庫更改,並檢查警告仍然存在的原因。
透過調整 PHP、Nginx 或 Apache、暫存和逾時設置,讓 Nextcloud 瀏覽器上傳更大的文件,並驗證是哪個限制阻止了文件上傳。
設定 Nextcloud 實際使用的 PHP 記憶體限制,重新啟動對應的服務,並在管理概覽中確認 512 MB 設定。
使用 Nextcloud 的 S3 後端,透過正確的端點、憑證、存取範圍和驗證步驟,掛載相容的物件儲存桶。
使用持久 UUID 掛載、維護模式、已驗證的副本和原始路徑符號鏈接,安全地將 Linux Nextcloud 資料目錄移至外部驅動器。
透過診斷 SQL 錯誤、檢查資料庫連線並安全地完成中斷的遷移,在更新後恢復 Nextcloud 存取。