클로드 코드를 처음 쓰면 허락 요청이 자주 뜹니다. 며칠 지나면 "이것 좀 그냥 알아서 하지" 싶어지는데, 그렇다고 전부 허용해 버리면 불안합니다. 그 사이의 균형을 잡는 것이 권한 설정(permissions)입니다.
📌 규칙 문법과 모드 이름은 버전에 따라 바뀔 수 있습니다. 정확한 형식은 공식 문서를 확인하세요.
권한 모드
세션 전체에 적용되는 기본 동작입니다. Shift + Tab으로 바꿀 수 있습니다.
| 모드 | 동작 |
|---|---|
| 기본 | 파일 수정·명령 실행 전에 확인 |
| 수정 자동 수락 | 파일 수정은 묻지 않고, 명령은 확인 |
| 플랜 모드 | 수정·실행 없이 계획만 (플랜 모드) |
규칙 세 가지: allow · ask · deny
모드 위에 개별 규칙을 얹어 세밀하게 조정합니다.
- allow: 묻지 않고 실행 — 안전하고 자주 쓰는 명령
- ask: 모드와 관계없이 항상 확인 — 되돌리기 어려운 명령
- deny: 아예 차단 — 절대 하면 안 되는 일
설정 방법
세션에서 /permissions를 입력하면 규칙을 보고 추가할 수 있습니다. 파일로 직접 관리할 수도 있습니다.
{
"permissions": {
"allow": ["Bash(npm run test:*)", "Bash(npm run lint)"],
"ask": ["Bash(git push:*)", "Bash(npm install:*)"],
"deny": ["Read(./.env)", "Read(./secrets/**)", "Bash(git push --force:*)"]
}
}
| 파일 | 범위 |
|---|---|
~/.claude/settings.json |
내 모든 프로젝트 |
.claude/settings.json |
이 프로젝트 (팀 공유) |
.claude/settings.local.json |
이 프로젝트, 나만 |
팀이 함께 지켜야 할 금지 규칙은 프로젝트 설정에, 개인 취향(내가 자주 쓰는 명령 허용)은 로컬 설정에 두면 깔끔합니다.
처음 쓰는 사람을 위한 추천 구성
- 처음 일주일은 기본 모드로 클로드가 무엇을 요청하는지 지켜봅니다.
- 여러 번 승인한 안전한 명령(테스트, 린트, 빌드)만 allow에 넣습니다.
- 패키지 설치, git push, 배포 명령은 ask에 둡니다.
.env, 키 파일 읽기와 강제 푸시·하드 리셋은 deny에 넣습니다.
자주 하는 실수
- 너무 넓은 allow:
Bash(*)처럼 모든 명령을 허용하면 규칙을 둔 의미가 없습니다. - deny만 믿기: 패턴은 우회될 수 있는 단순 규칙입니다. 중요한 보호는 훅과 함께, 그리고 백업과 깃으로 이중으로 지킵니다.
- 비밀 파일 방치: 프로젝트 폴더에 키 파일이 있다면 deny와 별개로
.gitignore에도 넣어야 합니다.
권한을 다듬으며 정한 원칙
제 기준은 단순합니다. "되돌릴 수 있으면 allow, 되돌리기 어려우면 ask, 되돌릴 수 없으면 deny." 테스트 실행은 몇 번을 돌려도 문제가 없으니 허용하고, 푸시는 되돌리기 번거로우니 묻게 하고, 강제 푸시처럼 기록을 지우는 일은 막습니다. 이 기준으로 정리하니 허락 요청은 줄고 불안감도 줄었습니다.
기억할 것 세 가지
- 권한 모드로 기본 동작을 정하고, allow·ask·deny 규칙으로 세밀하게 조정합니다.
- 처음엔 기본 모드로 지켜본 뒤 안전한 명령만 허용 목록에 넣으세요.
- 비밀 파일과 기록 삭제 명령은 deny, 중요한 보호는 훅·백업과 함께 지킵니다.

