CATEGORY

카테고리 (653)
AI (51)
Language & Specs (260)
FrameWork (36)
Library (20)
App (41)
Git (10)
Build & Dependency (2)
AWS (15)
DataBase (45)
OS (33)
Tool (17)
IT (120)
반응형
SEEMINGLY ONLINE

Seemingly
Online

이모저모 방방곡곡 두루두루 개발지식 저장소

RECENT POSTS

AI/Claude

클로드 코드 권한 설정 — 모드 6가지와 건너뛰기 정리

반응형

클로드 코드(Claude Code)가 파일을 고치거나 명령을 돌릴 때마다 확인을 묻는다면, 권한 모드(permission mode)를 바꾸면 됩니다. 세션 중 Shift+Tab으로 default → acceptEdits → plan을 돌려가며 바꾸고, 시작할 때 claude --permission-mode <모드>로 지정하며, 아예 다 건너뛰려면 claude --dangerously-skip-permissions(= bypassPermissions 모드)를 씁니다. 다만 이 건너뛰기 모드는 root/sudo에서는 실행이 거부되고 격리된 컨테이너에서만 써야 합니다. Claude Code 2.1.202 기준(2026-07-23 확인)으로 모드는 6가지이며, 오래된 글들이 흔히 적는 "5가지"와 다릅니다.

1. 권한 모드 6가지 한눈에

각 모드는 "얼마나 자주 물어보느냐"의 트레이드오프입니다. 아래 표는 확인 없이 바로 실행되는 범위를 정리한 것입니다.

모드(config 값) 확인 없이 실행되는 것 언제 쓰나
default (별칭 manual) 읽기만 시작·민감한 작업
acceptEdits 읽기 + 파일 수정 + 흔한 파일시스템 명령(mkdir·mv·cp 등) 리뷰하며 코드 반복 수정
plan 읽기만 (수정은 계획 승인 전까지 차단) 고치기 전에 코드베이스 탐색
auto 거의 전부 (백그라운드 분류기가 위험 행위만 차단) 긴 작업·확인 피로 줄이기
dontAsk 미리 허용한 도구만 (나머지는 자동 거부) 잠긴 CI·스크립트
bypassPermissions 전부 (모든 검사 끔) 격리된 컨테이너·VM 전용
💡 bypassPermissions를 제외한 모든 모드에서 보호 경로(.git·.claude·.zshrc 등)로의 쓰기는 절대 자동 승인되지 않습니다. 저장소 상태와 클로드 설정을 실수로 망가뜨리지 않게 막는 안전장치입니다.

2. 세션 중에 바꾸기 — Shift+Tab

세션이 돌아가는 중에는 Shift+Tab을 눌러 default → acceptEdits → plan 순으로 순환합니다. 상태바에 지금 모드가 표시됩니다.

⏸ manual mode on          (default — 매번 확인)
⏵⏵ accept edits on        (acceptEdits)
⏸ plan mode on            (plan)
⏵⏵ auto mode on           (auto)
⏵⏵ don't ask on           (dontAsk)
⏵⏵ bypass permissions on  (bypassPermissions)

auto·bypassPermissions·dontAsk는 기본 순환에 안 들어 있습니다. auto는 계정이 요건을 갖추면 순환에 나타나고, bypassPermissions--dangerously-skip-permissions 등으로 켠 세션에서만, dontAsk는 순환에 아예 안 나오고 플래그로만 켭니다.

3. 시작할 때 지정 — --permission-mode

세션을 특정 모드로 시작하려면 실행 시 플래그를 줍니다. claude 2.1.202에서 claude --help로 확인한 실제 선택지는 다음과 같습니다.

# --permission-mode 선택지: acceptEdits, auto, bypassPermissions, manual, dontAsk, plan
claude --permission-mode plan          # 계획 모드로 시작
claude --permission-mode acceptEdits   # 파일 수정 자동 승인
claude --permission-mode manual        # default(매번 확인)의 별칭

같은 플래그를 -p(비대화형 실행)와도 함께 쓸 수 있습니다.

4. 기본값 고정 — settings.json defaultMode

매번 플래그를 주기 번거로우면 설정 파일(~/.claude/settings.json 또는 프로젝트 .claude/settings.json)에 defaultMode를 넣어 시작 모드를 고정합니다.

{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}
⚠️ defaultMode: "auto"는 프로젝트 .claude/settings.json·.claude/settings.local.json에 넣으면 무시됩니다(저장소가 스스로 auto 권한을 부여하지 못하게 막음, v2.1.142+). auto를 기본값으로 하려면 사용자 설정 ~/.claude/settings.json에 넣어야 합니다.

5. 도구 단위로 허용·차단 — allow / deny / ask

모드가 "기준선"이라면, 그 위에 권한 규칙을 얹어 특정 도구를 미리 허용하거나 막을 수 있습니다. 규칙은 도구이름(패턴) 형식이고, denyaskbypassPermissions를 포함한 모든 모드에서 적용됩니다.

{
  "permissions": {
    "allow": [
      "Bash(npm test)",
      "Edit(src/**)"
    ],
    "deny": [
      "Read(./.env)"
    ]
  }
}

세션 안에서는 /permissions 명령으로 현재 규칙을 보고 조정할 수 있습니다. 규칙 문법(글롭 패턴 등)의 전체 목록은 공식 Permissions 문서에 있습니다.

💡 auto 모드에 들어가면 Bash(*)·Bash(python*)처럼 임의 코드 실행을 허용하는 넓은 규칙은 자동으로 제거되고, Bash(npm test)처럼 좁은 규칙만 유지됩니다. auto를 벗어나면 원래대로 복구됩니다. 서브에이전트도 같은 분류기 검사를 받는데, 이 구조는 클로드 서브에이전트 사용법에서 컨텍스트 절약과 함께 정리했습니다.

6. 모든 확인 건너뛰기 — --dangerously-skip-permissions

가장 많이 검색되는 "권한 건너뛰기"가 이것입니다. --dangerously-skip-permissions 플래그는 bypassPermissions 모드와 동일하게 모든 권한 프롬프트와 안전 검사를 끕니다.

claude --dangerously-skip-permissions
# 위와 동일:
claude --permission-mode bypassPermissions

제약이 몇 가지 있습니다.

  • 이미 실행 중인 세션에서는 이 모드로 들어갈 수 없습니다. 시작할 때 켜야 합니다.
  • 처음 대화형으로 켜면 책임을 확인하는 경고 창이 한 번 뜨고, 승인은 사용자 설정에 저장돼 다음부터는 안 뜹니다. 거부하면 클로드 코드가 종료됩니다.
  • 리눅스·macOS에서 root나 sudo로는 실행이 거부됩니다. 실제 출력 문구는 이렇습니다.
--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons
⚠️ 공식 문서는 이 모드를 인터넷이 없는 컨테이너·VM·dev container 같은 격리 환경에서만 쓰라고 못박습니다. 프롬프트 인젝션이나 의도치 않은 행동을 전혀 막아주지 못하기 때문입니다. 확인은 줄이되 안전 검사는 남기고 싶다면 auto 모드가 더 낫습니다.

자주 묻는 질문 (FAQ)

Q. 권한 모드가 5개라고 본 것 같은데요?
예전 문서·블로그가 그렇습니다. 2026-07-23 기준 공식 문서와 claude 2.1.202--permission-mode 선택지는 default(manual)·acceptEdits·plan·auto·dontAsk·bypassPermissions6개입니다.

Q. acceptEditsrm 같은 명령도 다 자동 실행되나요?
아닙니다. 파일 수정과 mkdir·touch·rm·mv·cp·sed 같은 흔한 파일시스템 명령만, 그것도 작업 디렉터리(또는 additionalDirectories) 안일 때만 자동 승인됩니다. 그 밖의 Bash 명령은 여전히 확인을 묻습니다.

Q. 계획 모드에서 승인하면 어떻게 되나요?
계획을 승인하면 plan 모드를 빠져나와 승인 옵션이 지정한 모드(자동 승인 또는 수동 승인)로 전환되어 클로드가 실제 수정을 시작합니다.

마무리

정리하면, 확인 빈도는 모드로 정하고(Shift+Tab·--permission-mode·defaultMode), 세부는 allow/deny 규칙으로 조절합니다. "다 건너뛰기"는 --dangerously-skip-permissions지만 격리 환경 전용이고 root에서는 막힙니다. 모드 동작은 버전마다 바뀌니, 헷갈리면 claude --help--permission-mode 선택지와 공식 문서로 확인하세요.


📚 참고 출처 (2026년 7월 23일 확인)
· Claude Code Docs — Choose a permission mode
· Claude Code Docs — Settings
· 직접 실행 확인: Claude Code 2.1.202 · claude --help

반응형

COMMENTS