科技 · 實用指南
Mac 的 rsync 報 Operation not permitted?先核對失敗路徑與啟動者
代碼 23 只是部分傳輸失敗摘要。區分來源讀取、目的寫入與中繼資料變更,再確認真實終端、SSH 或排程環境。

rsync 的代碼 23 不能單獨指出哪個權限失敗。前面的動作與路徑才重要:開啟來源目錄、重新命名目的檔案、設定時間戳記是不同工作。Mac 上手動終端成功,也不證明排程或遠端 SSH 具同樣隱私存取。
從真實記錄建立失敗清單
逐項記錄動作、完整路徑、來源或目的、電腦與程序環境。opendir 涉及目錄存取;failed to open 需依完整訊息與旗標判讀讀寫,路徑可能屬任一端;rename、chown、chgrp、failed to set times 是不同目的能力。內容已複製仍可能有中繼資料失敗。
保留完整 stderr 與 rsync 結束碼,勿只看包裝腳本成功字樣。在實際工作環境記錄 command -v rsync、rsync --version、id、pwd,只分享必要診斷值與去敏參數,不傾印整個環境。新版執行檔本身不能授權保護資料夾。
找出啟動者與需要存取的一端
互動工作確認實際終端應用;排程記錄啟動程式或服務、使用者、工作目錄與掛載路徑,不能假設繼承終端設定及授權。手動成功只是比較結果,不是排程修好。
SSH 遠端 rsync 使用遠端登入身分。若拒絕路徑屬遠端 Mac,只改本機 Terminal 不能建立遠端存取。SSH 與 rsync daemon 模組權限也不同;不能只憑 sender/receiver 標籤下結論。
只改證據對應的受支援設定
Apple 說明可於系統設定→隱私權與安全性→檔案與資料夾,按程式及位置控制存取。只給預定複製需要的範圍。遠端登入另在一般→共享→遠端登入,包含允許遠端使用者完整磁碟存取及登入使用者清單。
完整磁碟存取是廣泛授權,非每個代碼 23 都必需。受管理電腦不能改或無法識別負責程式時,交管理員處理。勿停用系統保護、改隱私資料庫或遞迴改擁有者。一般權限、檔案系統與中繼資料能力要分別診斷。
同一環境驗證,保留唯一副本
先核安裝版本支援選項,再小範圍 dry run 並列變更。預演不傳實際檔案,因此無錯誤不證明完整讀寫或中繼資料成功。之後由相同啟動者及遠端路線,對可捨棄樣本做不刪除的真實複製。
比較位元組與備份所需中繼資料,再檢查正式受控工作的完整記錄及結束碼。時間或擁有者仍失敗,不因能開檔就稱完整歸檔。保留原件和有效備份,不用刪除、忽略錯誤掩蓋問題。本文未實測讀者 Mac。
