我的NAS是群暉DS723+
我已經將nas中的docker授權給codex的專案.
但是codex依然無法讀取任何檔案.
codex回覆:
Codex 命令是在 FANMOPC\CodexSandboxOffline 隔離帳號下執行,而不是你檔案總管使用的帳號。對這個程序而言,Z: 根本沒有掛載,所以即使專案設定寫著 Z:\fanmo,仍無法存取。
這個不是 NAS 或 Docker 設定的問題,是 Codex 桌面版在 Windows 上的沙箱設計造成的。
如同 Codex 自己回覆的:它的指令是在 FANMOPC\CodexSandboxOffline 這個隔離帳號底下執行,跟你檔案總管使用的帳號不同。而網路磁碟機(例如 Z:)是每個登入 session 各自掛載的,對沙箱帳號來說 Z: 根本不存在。就算改用 UNC 路徑(\\NAS\share)也一樣會失敗,因為 SMB 的帳密存在你自己的 Windows Credential Manager 裡,沙箱帳號拿不到,會直接 Access denied。這是目前已知的問題,GitHub 上有 issue 在追蹤:https://github.com/openai/codex/issues/35476 。另外提醒:把 NAS 的 UNC 路徑加進 Codex 允許的寫入根目錄目前不但無效,還可能讓其他本機指令一起出錯,所以先不建議這樣設定。
實際可行的做法二選一:
把要處理的檔案或專案複製到本機資料夾,讓 Codex 在本機跑,完成後再同步回 NAS(robocopy、FreeFileSync 之類都行)。這是目前最穩的方式。
一定要直接讀 NAS 的話,把該專案的沙箱模式暫時關掉(改用完整存取、不在沙箱內執行),指令就會用你自己的帳號跑,Z: 就會跟你在檔案總管看到的一樣存在。代價是失去沙箱保護,建議只對信任的專案這樣開。
長期可以追一下上面那個 issue,等官方把 SMB/UNC 支援修好之後,再把 NAS 掛載點加回 workspace 就合理了。