ВойтиПолучить доступ

Настройки Claude Code7 минобновлено

Codex Access denied на Windows: как проверить доступ к проекту

Коротко: Если Codex получает Access denied при чтении проекта, сравни одну команду по одному файлу в обычном PowerShell и внутри агента. Затем проверь действующие разрешения. Успешное чтение снаружи не объясняет причину отказа внутри. Отключать защиту ради этой проверки не нужно.

Что означает Access denied при чтении в Codex

Речь про агента OpenAI Codex, запущенного командами прямо в Windows, без WSL2. Такой способ работы называется CLI. Песочница ограничивает доступ команд агента к файлам и действиям. Программа запустилась, но команда чтения проекта возвращает Access denied, «Отказано в доступе» или UnauthorizedAccessException. Если не запускается сам codex.exe, начни с установки Codex на Windows. WSL2 использует Linux-песочницу, поэтому команды и выводы этого разбора нельзя переносить туда без проверки среды.

Такой симптом описан в обращении 53687 от 13 октября 2026 года. Автор сообщил, что CLI 0.162.1 не читает разрешённую рабочую папку на H:, хотя обычный PowerShell читает те же пути. На момент чтения 15 октября обращение открыто. Автор прямо пишет, что причина не установлена: указанные в отчёте exFAT и запрошенный режим mxc её не доказывают. Какой режим действительно использовался, автор тоже не подтвердил.

Собственного воспроизведения на Windows здесь нет. Команды и ограничения сверены с документацией OpenAI и Microsoft 15 октября 2026 года. Результат проверки ниже нужно получить на своём компьютере; готового подтверждённого исправления этой ошибки в обращении нет.

Сначала проверь чтение вне Codex

Выбери в проблемной папке существующий непустой текстовый файл с короткой безопасной строкой. Не используй ключи, пароли, .env или клиентские документы. Если подходящего файла нет, остановись: давать агенту доступ к секретам ради теста не стоит.

Нажми «Пуск», найди PowerShell и открой его без запуска от администратора. Затем выполни три команды. H:\CodexReadTest\probe.txt - условный путь: замени его своим безопасным файлом и сохрани точно тот же путь для второй проверки.

Get-Location
Get-Item -LiteralPath 'H:\CodexReadTest\probe.txt' -ErrorAction Stop
Get-Content -LiteralPath 'H:\CodexReadTest\probe.txt' -TotalCount 1 -ErrorAction Stop

По документации Microsoft, Get-Location показывает текущую папку PowerShell, а Get-Item показывает сведения о файле по указанному пути. Get-Content читает содержимое; -TotalCount 1 ограничивает вывод первой строкой. Длина этой строки в байтах не ограничена, поэтому короткий несекретный файл выбирается заранее.

Признак успешного чтения - появилась ожидаемая первая строка файла без ошибки. Отсутствие ошибки у одного Get-Item подтверждает получение сведений о файле, но не чтение содержимого. Если Get-Content отказывает уже здесь, расхождение с Codex пока не установлено: сначала уточни путь и возможность чтения обычным пользователем.

Повтори ту же команду внутри Codex

Коротко: Для сравнения нужны один файл, его полный путь от буквы диска и одинаковая команда PowerShell. Смена папки, оболочки или профиля между проверками добавляет новое условие и мешает понять отказ.

  1. В той сессии Codex, где возник отказ чтения, введи /status, затем /debug-config. Это команды внутри интерфейса Codex, не строки для PowerShell. Запиши показанные разрешения и конфигурацию, неизвестные поля оставь неизвестными. Не публикуй полный вывод без просмотра: там могут быть частные пути и настройки.
  2. Скопируй в Codex три команды выше со своим путём. Перед ними вставь: «Выполни эти команды в PowerShell. Ничего не записывай, не создавай и не удаляй. Права и настройки не меняй, расширение доступа не запрашивай. Покажи фактическую оболочку, рабочую папку, точную команду и результат. При отказе остановись».
  3. Убедись по показанному вызову, что агент действительно использовал PowerShell и нужный путь. Если команда не запустилась или оболочка другая, сравнение чтения ещё не состоялось. Сохрани ошибку этого шага отдельно.

Не одобряй расширение доступа в середине сравнения: результат уже будет получен при других условиях. Подробно разницу между песочницей и подтверждениями разбирает руководство по работе с Codex.

Для отдельной контрольной проверки документация CLI позволяет запустить новый сеанс только для чтения:

codex --cd 'H:\CodexReadTest' --sandbox read-only --ask-for-approval never

Папку тоже замени своей. После запуска повтори те же команды. Учти: это новый сеанс с другим профилем, его результат дополняет исходную проверку. Параметр never не отключает песочницу. Режим только чтения относится к действиям в проекте; клиент может вести собственные служебные журналы.

Что показывают два результата

Сравни именно Get-Content по одному файлу. Таблица помогает выбрать следующий шаг, не назначая причину по одному сообщению.

Обычный PowerShell Команда внутри Codex Что установлено и что делать
Читает строку Получает отказ доступа Чтение различается между двумя средами. Сохрани точный вызов и проверь активные разрешения
Получает отказ Получает отказ Файл не читается и вне Codex. Уточни путь и доступ обычного пользователя
Читает строку Читает ту же строку Этот файл при этих условиях доступен. Другие файлы и весь исходный сбой ещё не проверены
Любой результат Команда не запускается Проверка содержимого не состоялась. Разбирай запуск команды отдельно

Подход «сначала воспроизвести, затем искать причину» есть и в наборе Superpowers, где описан systematic-debugging. Устанавливать набор ради этих команд не требуется.

Хочешь разобраться, какие действия разрешать агенту в своих проектах? В ClaudeBase есть разбор «Рабочее окружение: правила проекта и разрешения» и шаблоны CLAUDE.md и AGENTS.md. Открой страницу доступа ClaudeBase, чтобы сверить программу с задачами своего проекта. Программа открыта без оплаты; материалы и подключение базы доступны после оплаты.

Почему read-only не открывает любую папку

По документации OpenAI, при отказе чтения нужно проверить активный профиль разрешений, ограничения организации и права Windows на файлы. Для управляемого рабочего компьютера такое ограничение разбирают с администратором. Само слово read-only не выдаёт доступ ко всем дискам.

Профиль задаёт доступные пути и операции. Политика подтверждений определяет, когда агент спрашивает о расширении доступа. Поэтому исчезновение вопросов после never не подтверждает, что файл стал доступен. Параметр --add-dir в справочнике CLI описан как дополнительный доступ на запись; оснований считать его универсальным способом устранения отказа чтения нет.

В актуальной Windows-документации три реализации песочницы:

  • mxc использует нативную изоляцию процессов без дополнительных учётных записей Windows;
  • elevated требует одобрения администратора при настройке, но команды выполняются без прав администратора;
  • unelevated даёт более слабую сетевую изоляцию и не поддерживает запрещённые для чтения пути.

Поэтому утверждение «Codex всегда работает другим пользователем» слишком широкое. Запрошенная настройка и фактический режим исполнения могут различаться; записывай только подтверждённое состояние.

Не переключай режимы наугад, не выдавай права Everyone и не форматируй диск. Наличие exFAT в чужом отчёте не доказывает причину твоей ошибки, а смена нескольких настроек сразу лишит тебя исходного сравнения.

Что сохранить, если отказ остался

Подготовь короткий локальный отчёт. Никому не отправляй его автоматически: сначала убери личные сведения и секреты.

Клиент: Codex CLI, версия ...
Windows: версия и номер сборки ...
Среда: нативный PowerShell / другая ...
Фактический режим песочницы: mxc / elevated / unelevated / неизвестен
Активные разрешения и ограничения организации: ... / неизвестны
Путь безопасного файла: ... (обезличить одинаково в обоих результатах)
Команда чтения: ...
Обычный PowerShell: первая строка прочитана / точная ошибка ...
Внутри Codex: первая строка прочитана / точная ошибка ...
Отличия контрольного сеанса от исходного: ...

OpenAI также просит CODEX_HOME/.sandbox/sandbox.log, выбранную реализацию песочницы, ошибку и сборку Windows. CODEX_HOME обозначает папку данных Codex. Просмотри журнал перед передачей: публичный отчёт не должен содержать частные пути и данные проекта. Каталог CODEX_HOME/.sandbox-secrets/ отправлять нельзя.

Если чтение позже заработало, повтори исходный вызов по тому же файлу при исходных условиях и сохрани результат. Успешный тест другого файла или запуск codex --version не подтверждает, что доступ к проекту исправлен.

Источники

Документация прочитана 15 октября 2026 года. Команды на Windows автором не выполнялись.

Спрашивают

Пять вопросов по теме

Почему PowerShell читает файл, а Codex получает Access denied?

Две команды выполняются в разных условиях доступа. Песочница учитывает активный профиль разрешений и ограничения организации, Windows применяет свои права. Успех чтения снаружи не показывает причину отказа внутри: сначала нужны один абсолютный путь, одинаковая команда и её точная ошибка.

Разве режим read-only не должен разрешать чтение?

Он разрешает чтение в пределах доступной песочнице среды, но не открывает любой каталог компьютера. Проверь действующий профиль, ограничения организации и Windows. Настройка never управляет запросами на расширение прав; сама по себе она не снимает границы песочницы.

Чем Access denied отличается от Windows error 1385?

При 1385 Windows запрещает тип входа, нужный пользователю песочницы для запуска команды. Отказ Get-Content при чтении уже работающей командой относится к другой проверке. Сохрани сообщение целиком: по словам Access denied нельзя автоматически поставить причину 1385 или советовать тот же способ исправления.

Что записать, если Codex раньше читал проект, а теперь перестал?

Зафиксируй, переносился ли проект, менялись ли разрешения, политики Windows или настройки. OpenAI перечисляет эти изменения как возможный контекст сбоя, без вывода о причине твоей ошибки. До новых правок сохрани одинаковое чтение снаружи и внутри, версию клиента и фактические ограничения.

Что приложить к обращению об ошибке Windows sandbox?

Версию клиента и сборку Windows, выбранную реализацию песочницы, точную команду, обезличенный путь и результаты чтения снаружи и внутри. OpenAI просит журнал CODEX_HOME/.sandbox/sandbox.log. Перед отправкой проверь его содержимое; каталог .sandbox-secrets, ключи и личные данные не прикладывай.

Источники