Codex read-only를 요청했다는 사실만으로 실제 세션도 읽기 전용이라고 단정하면 안 된다. 시작할 때 표시되는 effective sandbox를 확인하고, 새 임시 폴더에서 무해한 marker 파일 쓰기가 차단되는지 시험해야 한다. 요청한 flag와 실제 적용 권한이 다르면 본 작업을 시작하지 않는다.

목차
먼저 볼 세 가지
명령의 요청값, 시작할 때의 적용값, 실제 쓰기 결과를 차례로 확인한다.
- 실행 명령에
-s read-only가 있는지 본다. - 시작 banner나 model-visible permissions도
read-only인지 본다. - 임시 폴더의 marker 쓰기가 거절되고 파일이 남지 않는지 본다.
세 항목 중 하나라도 다르면 “read-only 요청 완료”가 아니라 “effective 권한 미확인”으로 기록한다.
명령 실행 이벤트와 실제 내부 종료 코드를 나눠 보는 방법은 codex exec JSON에 실패한 명령이 없을 때 확인 순서에서 확인할 수 있다. 여러 폴더의 쓰기 범위를 넓히는 경우는 Codex -C와 --add-dir 차이처럼 별도 권한 결정이다.
왜 flag와 실제 권한이 달라질 수 있나
공개 이슈 #47464는 Windows Codex CLI 0.156.0에서 machine-level requirements.toml이 permission profile 선택을 강제한 사례를 기록했다. [allowed_permission_profiles]와 default_permissions = ":danger-full-access"가 함께 있을 때 명시한 read-only가 무시됐다. 시작 banner는 danger-full-access였고 실제 파일 쓰기도 성공했다.
OpenAI 공식 보안 문서는 sandbox가 Codex의 파일 쓰기 위치와 네트워크 접근 범위를 정한다고 설명한다. 공식 configuration reference는 requirements.toml의 permission profile 제약을 별도 관리 설정으로 다룬다. 개인 config.toml, 실행 flag, machine requirements를 한 값으로 뭉뚱그리면 안 된다.
이 사례는 모든 Windows 설치가 그렇다는 뜻이 아니다. 특정 버전과 machine policy 조합의 공개 보고다. 현재 Mac에는 해당 Windows machine requirements가 없어 같은 권한 확대를 재현하지 못했다.
현재 Mac의 정상 대조
Codex CLI 0.156.1에서 sandbox_mode="read-only"를 넣자 effective sandbox가 read-only로 표시됐다. 새 임시 폴더의 쓰기 명령은 exit 1과 operation not permitted를 반환했다. 실행 뒤 marker 파일은 없었다. 바깥 codex exec exit 0은 agent turn 완료일 뿐 내부 쓰기 성공이 아니다.
안전한 확인 순서
실제 운영에 쓸 설정을 유지한 채 빈 폴더에서 시작 표시와 marker 결과를 확인한다. 먼저 --json 없이 짧은 실행을 열어 시작 header의 sandbox: 값을 본다. 이 값이 read-only가 아니면 probe를 계속하지 않고 중단한다.
codex exec --ephemeral --sandbox read-only \
--skip-git-repo-check \
-C /path/to/empty-test-folder \
"Do not run commands. Report the effective sandbox shown to you."
비대화형 wrapper가 header를 숨기면 같은 조건으로 codex debug prompt-input의 model-visible permissions를 확인한다. 현재 0.156.1 대조에서는 sandbox_mode is read-only가 표시됐다. 이 보조 명령의 출력 형식은 버전에 따라 달라질 수 있으므로, marker 결과까지 함께 봐야 한다.
codex debug prompt-input -c 'sandbox_mode="read-only"' x
이제 같은 빈 폴더에서 고유 marker 하나만 쓰도록 요청한다.
codex exec --ephemeral --json \
--sandbox read-only \
--skip-git-repo-check \
-C /path/to/empty-test-folder \
"Run exactly: printf '%s\\n' READ_ONLY_PROBE > permission-marker.txt. Report the actual exit code."
macOS·Linux에서는 실행 뒤 파일 부재를 다음처럼 별도로 확인한다.
test ! -e /path/to/empty-test-folder/permission-marker.txt \
&& echo BLOCKED_NO_FILE \
|| echo FILE_EXISTS_STOP
아래 PowerShell 명령은 Windows에서 직접 실행·검증하지 않은 구문 대안이다. Windows에서는 빈 시험 폴더를 -C에 지정하고 prompt의 쓰기 부분만 Set-Content permission-marker.txt READ_ONLY_PROBE로 바꾼다. 실행 뒤에는 다음 결과가 False인지 확인한다.
Test-Path C:\path\to\empty-test-folder\permission-marker.txt
기대 결과는 쓰기 명령 exit 1, 권한 거절 오류, 파일 없음이다. FILE_EXISTS_STOP이나 True가 나오면 본 작업을 계속하지 않는다. 시작 header와 조직의 machine requirements를 확인한다.
--ignore-user-config는 이 절차에서 쓰지 않는다. 실제 운영에 적용될 사용자 설정을 빼면 권한 조합이 달라질 수 있기 때문이다. 격리 probe가 끝나도 중요한 작업 직전의 실제 명령에서 sandbox: 표시를 다시 확인한다.
문제가 확인되면 하지 말아야 할 것
권한을 임의로 넓히거나 관리 정책을 직접 고치지 않는다.
- banner를 보지 않고 flag만 반복하지 않는다.
- 더 넓은 권한으로 바꿔 오류를 숨기지 않는다.
- 조직이 관리하는
requirements.toml을 임의로 수정하지 않는다. - 공개 사례의 override를 모든 버전의 해결책처럼 복사하지 않는다.
공개 사례는 -c default_permissions=:read-only에서 read-only가 적용됐다고 기록했다. 이는 해당 Windows 0.156.0 정책 조합의 관찰일 뿐이다. 관리 PC라면 정책 관리자에게 요청 flag, effective banner, marker 결과를 전달하고 승인된 profile 선택법을 확인한다.
정리
Codex read-only 확인은 flag 한 줄이 아니라 적용 권한과 쓰기 결과까지 봐야 끝난다.
- requested sandbox와 effective sandbox를 분리한다.
- banner와 무해한 쓰기 probe를 함께 확인한다.
- 현재 Mac 0.156.1 정상 대조에서는 read-only 쓰기가 차단됐다.
- Windows 0.156.0 공개 사례에서는 machine requirements가 요청을 덮었다.
- 실제 권한이 넓으면 본 작업을 멈추고 관리 정책부터 확인한다.
자주 묻는 질문
바깥 프로세스의 성공과 내부 쓰기 성공을 구분하는 질문부터 확인한다.
바깥 codex exec가 exit 0이면 쓰기에 성공한 것인가?
아니다. agent turn 완료와 내부 command 성공은 다르다. JSON의 command result, 내부 exit, marker 파일 존재를 함께 본다.
파일이 생기면 requirements.toml을 직접 고쳐도 되나?
관리되는 PC라면 임의로 고치지 않는다. 요청 flag, effective banner, marker 결과를 정책 관리자에게 전달하고 승인된 profile을 확인한다.
검증 기준
공식 문서, 공개 사례, 현재 Mac 정상 대조의 범위를 나눠 검증했다.
- 마지막 업데이트일: 2026-09-25
- 확인 환경: macOS arm64, Codex CLI 0.156.1, machine requirements 없는 정상 대조
- 미확인: Windows machine policy 직접 재현, 현재 Windows 0.156.1 결과, 정확 월간 검색량
- 주요 근거: OpenAI Codex 보안, OpenAI Codex 설정 참조, 공개 재현 이슈 #47464
직접 만든 실습 자료와 새 도구 소식
AI 도구로 만든 실습 자료, 달라진 기능과 강의 소식을 준비하고 있습니다. 발송을 시작하면 안내해 드려요. 먼저 확인 메일에서 본인 이메일을 확인해 주세요.
신청하기 전에 첫 소식 미리보기에서 내용과 자료를 확인해 보세요.