쉽게 배우는 Claude Code ⑪ /permissions·권한 모드 — 위험한 명령은 막고, 안전한 건 덜 귀찮게
deny 규칙으로 rm 같은 위험한 명령은 막고, auto·plan 모드로 승인 마찰을 조절하는 법을 정리합니다.
Claude Code를 쓰다 보면 두 가지 불편을 동시에 겪게 됩니다. 하나는 “혹시 얘가 실수로 파일을 지우면 어쩌지?” 하는 불안이고, 다른 하나는 “안전한 명령인데 매번 y를 누르는 게 귀찮다”는 피로입니다. 이 둘은 사실 같은 손잡이의 양 끝입니다. 너무 조이면 귀찮고, 너무 풀면 불안하죠.
/permissions와 권한 모드(--permission-mode)는 바로 이 손잡이를 다루는 도구입니다. 막을 건 막고, 안전한 건 풀어서 마찰을 적당한 자리에 맞추는 게 핵심입니다.
한 줄로
/permissions는 도구 사용에 대한 허용/물어보기/거부 규칙을 관리하고, --permission-mode는 세션 전체의 기본 승인 태도를 정합니다.
언제 쓰나
★ 실수로 파일을 지우는 게 무섭다
rm 같은 파괴적인 명령이 무심코 실행되는 게 걱정될 때가 있습니다. 이럴 때는 /permissions에서 해당 패턴에 deny(거부) 규칙을 걸어 둡니다. 그러면 그 패턴은 아예 차단되어, 모드가 무엇이든 실행되지 않습니다. “막을 건 막는” 쪽입니다.
★ 매번 같은 읽기 전용 명령에 ‘y’를 누르고 있다
git log, ls처럼 읽기만 하는 명령에 매번 승인을 누르고 있다면, 두 가지 길이 있습니다. 그 명령 패턴을 /permissions에서 allow(허용) 로 등록하거나, 세션을 auto 모드로 두는 것입니다. auto는 읽기 전용 Bash나 기본 편집 같은 ‘안전한’ 호출을 자동 승인해 흐름을 매끄럽게 합니다. “안전한 건 푸는” 쪽이죠.
★ 큰 작업 전에 신중히 가고 싶다
마이그레이션처럼 손이 많이 가는 작업을 시작하기 전, 무엇을 만지는지 하나하나 확인하고 싶을 때가 있습니다. 이럴 때는 plan 모드로 시작합니다. 모든 도구 호출에 승인을 받으므로, 계획을 먼저 보고 천천히 진행할 수 있습니다.
어떻게
규칙으로 관리 — /permissions
세션 중에 /permissions를 입력하면 대화형 설정 창이 열립니다. 여기서 도구별로 세 가지 규칙을 관리합니다.
| 규칙 | 의미 |
|---|---|
| allow | 묻지 않고 허용 |
| ask | 실행 전 물어보기 |
| deny | 차단(허용 안 함) |
Bash 명령은 패턴 단위로 다룰 수 있습니다. 예를 들어 git log는 allow로 두고, rm은 deny로 막는 식입니다. MCP 도구 접근도 같은 방식으로 조절합니다.
모드로 시작 — --permission-mode
세션을 특정 권한 모드로 시작하려면 시작 플래그를 줍니다.
claude --permission-mode auto
모드는 세션 전체의 기본 태도입니다.
| 모드 | 동작 |
|---|---|
default | 기본 동작 |
acceptEdits | 편집을 자동 수락 |
auto | 읽기 전용 Bash·기본 편집 등 ‘안전한’ 호출을 자동 승인 |
plan | 모든 도구에 승인 필요 |
bypassPermissions | 모든 검사를 건너뜀 |
세션 중에 바꾸기 — Shift+Tab
모드를 미리 정하지 못했더라도, 세션 도중 Shift+Tab으로 모드를 순환할 수 있습니다. 읽기만 하는 구간에서는 auto로 매끄럽게, 위험한 구간 앞에서는 plan으로 신중하게 — 이렇게 작업 흐름에 맞춰 태도를 바꿔 가며 쓰면 됩니다.
팁 & 함정
deny는 모드보다 우선합니다. 위험 패턴을 deny로 막아 두면,auto처럼 풀어 주는 모드를 쓰더라도 그 패턴은 여전히 차단됩니다. “안전한 건 풀고, 막을 건 확실히 막는” 조합을 만들 수 있습니다.bypassPermissions는 위험합니다. 모든 검사를 건너뛰므로, 그냥Shift+Tab순환에는 들어오지 않습니다. 시작 시--allow-dangerously-skip-permissions를 줘야 순환에 포함됩니다. 신뢰된 샌드박스에서만 쓰세요.- 균형이 핵심입니다. 권한 설정의 목적은 무조건 조이거나 무조건 푸는 게 아니라, 마찰을 적당히 줄이는 것입니다. 자주 누르는 안전한 패턴은 allow로 풀고, 무서운 패턴은 deny로 막아 두면, 평소엔 매끄럽고 위험한 순간엔 멈추는 상태가 됩니다.
한 장 정리
| 상황 | 손잡이 |
|---|---|
위험한 명령(rm 등)을 막고 싶다 | /permissions에서 deny 규칙 |
| 같은 안전한 명령에 매번 ‘y’를 누른다 | 그 패턴을 allow, 또는 auto 모드 |
| 큰 작업 전 하나씩 확인하고 싶다 | plan 모드 |
| 편집을 자동으로 수락하고 싶다 | acceptEdits 모드 |
| 세션 도중 태도를 바꾸고 싶다 | Shift+Tab으로 모드 순환 |
| 모든 검사를 건너뛰고 싶다(주의) | bypassPermissions + --allow-dangerously-skip-permissions, 샌드박스에서만 |
다음 편:
claude -p(헤드리스 모드) — 스크립트·자동화에서 Claude 쓰기.