강연·도입 문의

권한 — 허용·물어봄·막기, 그리고 여섯 모드

기능 사전 책 8·13장 보기 → 직접 확인 2026-07-21(v2.1.216) · 업데이트 내역 확인 2026-10-08(v2.1.293) 운영 고광태 →
이것만 알면 됩니다 ① 권한 관리는 클로드가 무엇을 바로 하고, 무엇을 물어보고, 무엇을 아예 못 할지 정하는 일입니다. 회사로 치면 결재 규정입니다.
② 허용·물어봄·막기는 AI에게 말로 하는 부탁이 아니라, 클로드 코드라는 프로그램이 직접 지키는 규칙입니다.
③ 막기 목록에 올린 일은 허용 목록에 함께 있어도, 묻는 횟수를 줄이는 권한 모드를 켜도 그대로 막힙니다.
④ 클로드에게 “삭제·발송·결제는 어떤 경우에도 막아 줘”라고 시킨 뒤, /permissions로 확인하면 됩니다.

클로드 코드를 수동 모드로 쓰면 파일을 고치거나 명령을 실행하기 전에 사장에게 허락을 구합니다. 지금 버전은 처음 켜면 자동 모드로 시작하는 것이 기본이라, 작업 폴더 안 파일 고치기는 묻지 않고 하고 명령 실행·인터넷 접속 같은 그 밖의 일은 또 하나의 AI가 사람 대신 판단합니다(모드 페이지 참고). 무엇을 묻지 않고 하게 두고, 무엇을 물어보게 하고, 무엇을 아예 막을지 정하는 일이 권한(permission) 관리입니다. 회사로 치면 결재 규정입니다. 좋은 브레이크가 달린 차라야 더 빨리 달릴 수 있듯, 권한을 잘 정해 둘수록 더 큰 일을 안심하고 맡길 수 있습니다. 권한의 선을 사람이 그어 주어야 하는 것은 AI가 어떤 일이 되돌릴 수 없고 위험한지를 스스로 가려내지 못하기 때문입니다. 이 약점이 왜 생기는지는 「AI는 자기가 한 일을 스스로 판단하지 못합니다」 페이지에서 설명합니다. 이 선을 회사 구조로 옮기는 이야기는 「만든 사람과 검사하는 사람을 나눕니다」 페이지에 있습니다.

큰 그림 — 위험도에 따라 셋으로 나눕니다

클로드 코드는 도구의 위험도에 따라 허락받는 방식을 셋으로 나눕니다.

도구 종류예허락이 필요한가
읽기 전용예파일 읽기, 검색허락이 필요한가작업 폴더 안에서는 필요 없음
터미널 명령어예터미널 명령 실행허락이 필요한가필요함(ls·git status 같은 안전한 읽기용 명령은 예외)
파일 수정예파일 편집·쓰기허락이 필요한가필요함

위 표는 수동 모드 기준입니다. 들여다보기만 하는 일은 묻지 않고 바로 하고, 무언가를 바꾸거나 실행하는 일은 허락을 받습니다. 자동 모드에서는 작업 폴더 안 파일 고치기는 묻지 않고 하고, 그 밖의 허락은 또 하나의 AI가 대신 판단합니다.

또 하나의 기본 울타리가 작업 폴더 경계입니다. 클로드 코드는 실행한 폴더와 그 하위 폴더에만 파일을 씁니다. 상위 폴더나 엉뚱한 폴더의 파일은 별도 허락 없이 고치지 못합니다. 이 경계가 실수로 다른 폴더를 건드리는 일을 막아 줍니다.

파일 생성 허락 질문 화면 — 무엇을 만들지 보여 주고 허용 여부를 묻는 선택지
권한 질문(실제 화면) — 무엇을 하려는지 내용까지 보여 주고 묻습니다. 따라 하기 1편의 첫 지시에서 만나는 바로 그 화면입니다.

허락 질문이 한꺼번에 여러 개 쌓일 때도 있습니다. 이때는 먼저 온 질문부터 차례로 뜨고, 질문 화면에 “2 of 5”처럼 지금 몇 번째 질문인지가 함께 보입니다. 새 질문이 읽고 있던 질문을 덮지 않으니 하나씩 읽고 답하면 됩니다. 시간 제한이 있는 질문만은 예외로, 읽던 질문 위에 바로 뜹니다.

부탁이 아니라 강제입니다

권한 규칙은 클로드 코드라는 프로그램이 직접 지키는 것이지, AI에게 말로 부탁하는 것이 아닙니다. 프롬프트(AI에게 건네는 지시)나 CLAUDE.md에 “이건 하지 마”라고 적으면 AI가 무엇을 하려 할지에는 영향을 주지만, 실제로 되고 안 되고를 바꾸지는 못합니다. 사규에 적힌 문장과 출입문 잠금장치의 차이입니다.

“하지 마라”라고 적어 두는 데서 멈추지 않고, AI가 설령 어기려 해도 프로그램이 막아서는 장치를 따로 둡니다. 진짜 통제는 아래에서 설명하는 권한 규칙과 권한 모드가 맡습니다. 이 원리를 경영 차원으로 넓힌 것이 책 13장의 통제경영입니다.

세 가지 규칙 — 허용·물어봄·막기

권한 규칙은 세 종류이고, 각각 하나의 목록으로 관리합니다.

  • 허용(allow) — 묻지 말고 바로 쓰게 합니다.
  • 물어봄(ask) — 쓰려 할 때마다 물어봅니다. 수동 모드에서 바꾸거나 실행하는 일은 규칙이 없어도 이렇게 묻습니다.
  • 막기(deny) — 아예 쓰지 못하게 막습니다(마지노선).

규칙은 막기 → 물어봄 → 허용 순서로 검사하고, 먼저 걸리는 규칙이 결과를 정합니다. 그래서 막기가 항상 이깁니다. 같은 명령이 허용과 막기 목록에 동시에 들어 있으면 막기가 적용됩니다. 예를 들어 Bash(aws *)를 막아 두면, 더 구체적인 Bash(aws s3 ls)를 허용해 두었더라도 막힙니다. 규칙이 얼마나 구체적인지와 상관없이 이 순서는 늘 같습니다.

추천 첫걸음 되돌릴 수 없는 일 3가지(예: 파일 삭제·외부 발송·결제)를 골라 막기 목록에 올려 둡니다. 책 13장이 실행 상자로 권하는 첫걸음도 이것입니다.
주의 어떤 권한 모드를 켜 두어도 막기 규칙에 걸린 일은 막히고, 물어봄 규칙에 걸린 일은 저절로 허락되지 않습니다. 편집 자동 승인이나 자동 모드도 마찬가지입니다. 다만 물어봄은 사람이 허락하면 실행되고, 막기는 묻지 않고 바로 막습니다. 그래서 되돌릴 수 없는 일은 막기가 먼저입니다.

지금 들어가 있는 규칙을 보려면 슬래시 명령어 하나면 됩니다. 규칙 목록과 각 규칙이 어느 설정 파일에서 왔는지를 한눈에 보여 줍니다.

# 클로드 코드 입력창에
/permissions
클로드 코드의 /permissions 화면. 위쪽에 Allow·Ask·Deny·Workspace 등 탭이 있고, 아래에 허용된 규칙이 번호가 매겨진 목록으로 늘어서 있다. 실제 규칙 내용은 사생활 보호를 위해 흐리게 처리했다
/permissions를 친 화면(실제 화면). 위쪽 탭으로 허용·물어봄·막기를 오가고, 아래 목록에서 지금 들어가 있는 규칙과 그 출처를 봅니다. 최신 버전에는 자동 모드 탭이 하나 더 있어, 자동 모드가 무엇을 스스로 허락할지 정하는 규칙을 그 탭에서 보고 고칩니다. 이 화면은 그 전 버전입니다. 규칙 내용은 사생활 보호를 위해 흐리게 두었습니다 — 화면 생김새만 보시면 됩니다.

전체 검사 순서 — 여섯 단계

방금 본 세 규칙은 사실 더 긴 검사 순서의 한가운데에 있습니다. 도구를 하나 쓰려 할 때마다 정해진 여섯 단계를 순서대로 밟고, 앞 단계에서 결판이 나면 뒤 단계는 건너뜁니다. 공항에서 보안 검색대를 차례로 지나는 것과 같습니다.

사장이 기억할 것은 막는 장치가 앞줄에 서 있다는 점입니다. 훅(정해진 순간이 오면 저절로 실행되는 자동 장치)과 막기 규칙이 1·2번이라, 뒤에 어떤 허용 규칙이 있어도 이 둘이 먼저 작동합니다. 확인을 거의 건너뛰는 bypassPermissions를 켜 두어도 이 둘은 그대로 살아 있습니다. 반대로 허용은 5번이라 늦게 오고, 앞에서 이미 승인된 도구는 마지막 6번 검사에 아예 도달하지 않습니다.

순서단계하는 일
1단계훅(hooks)하는 일가장 먼저 실행됩니다. 도구 사용을 즉시 거부하거나 다음 단계로 넘깁니다.
2단계막기 규칙(deny)하는 일settings.json의 막기 규칙을 확인합니다. 걸리면 bypassPermissions 모드에서도 막힙니다.
3단계물어봄 규칙(ask)하는 일걸리면 사용자 확인을 받습니다. bypassPermissions에서도 물어봅니다.
4단계권한 모드하는 일지금 켜져 있는 권한 모드를 적용합니다(아래 「권한 모드 여섯 가지」 항목).
5단계허용 규칙(allow)하는 일settings.json의 허용 규칙을 확인합니다. 걸리면 승인됩니다.
6단계canUseTool 콜백하는 일위에서 결판나지 않았을 때 마지막으로 사용자에게 물어봅니다. 콜백은 판단을 사람 쪽으로 되넘기는 통로입니다. 직접 프로그램을 짜서 클로드를 연결할 때 쓰는 기능이라, 터미널만 쓰신다면 몰라도 됩니다.
주의 허용 규칙이나 acceptEdits(편집 자동 승인)·bypassPermissions로 앞 단계에서 이미 통과한 도구는 마지막 canUseTool 콜백에 도달하지 않습니다. 모든 도구 사용을 빠짐없이 한 번씩 검사하고 싶다면 콜백이 아니라 PreToolUse 훅을 씁니다. 훅은 다른 모든 단계보다 먼저 실행되고, 훅의 거부는 bypassPermissions에서도 유효합니다.

설정 파일을 손으로 고칠 필요는 없습니다

말로 시키면 됩니다.

# 클로드 코드 입력창에
파일 읽기는 항상 허용해 줘. 삭제·발송·결제는 어떤 경우에도 막아 줘.
반영 전에 바뀌는 내용을 먼저 보여 줘

이렇게 말하면 클로드가 바뀔 내용을 먼저 보여 주고, 내가 좋다고 해야 아래 문법의 규칙을 설정 파일에 적습니다. 적힌 결과는 /permissions로 확인하면 됩니다. 다음 항목의 문법은 “클로드가 써 준 규칙을 읽고 검사할 수 있는 눈”을 갖추기 위한 것입니다.

규칙 문법 — 괄호 안에 조건을 적습니다

규칙은 도구이름 또는 도구이름(조건) 형태로 씁니다. 조건을 빼면 그 도구의 모든 사용에 적용되고, 괄호 안에 조건을 넣으면 특정 경우만 좁혀 겨냥합니다.

규칙뜻
Bash모든 터미널 명령어
Bash(npm run build)정확히 npm run build 명령어만
Read(./.env)현재 폴더의 .env 파일 읽기만
WebFetch(domain:example.com)example.com으로 보내는 요청만

터미널 명령어 규칙에서는 *가 “아무 글자나”라는 뜻의 만능 표시입니다. 아래는 npm 명령어와 git 커밋은 허용하되 git push만 막는 설정입니다.

# npm 명령·git 커밋은 허용, git push만 차단
{
  "permissions": {
    "allow": ["Bash(npm run *)", "Bash(git commit *)"],
    "deny": ["Bash(git push *)"]
  }
}
요령 별표 앞의 빈칸(공백)이 중요합니다. Bash(ls *)는 ls -la에는 맞지만 lsof에는 맞지 않습니다. 빈칸 없는 Bash(ls*)는 둘 다에 맞습니다. 공백 하나가 단어의 경계를 지키느냐 마느냐를 가릅니다.

클로드 코드는 터미널 명령의 연결 기호(&&, ||, ; 등)도 이해합니다. Bash(안전한명령 *)를 허용해 두어도, “안전한명령 && 위험한명령”처럼 뒤에 다른 명령을 이어 붙인 것은 자동으로 통과되지 않습니다. 이어 붙인 명령은 하나하나 따로 규칙에 맞아야 합니다.

Read(읽기)·Edit(편집) 규칙에는 파일 경로를 적습니다. *는 폴더 이름 한 칸만 대신하므로 그 아래 폴더까지는 내려가지 않습니다. **는 아래로 몇 단계든 함께 포함합니다. 가장 흔한 쓰임새는 비밀번호나 열쇠(API 키) 같은 비밀 정보가 든 파일을 아예 못 읽게 막는 것입니다. 우리 회사도 비밀 파일은 읽기부터 막기 목록에 올려 두고 시작합니다.

주의 허용 규칙에서 *의 범위가 2026년 7월 18일 업데이트부터 좁아졌습니다. Edit(src/**)처럼 앞에 별표 없이 폴더 이름부터 적은 허용 규칙은 이제 그 폴더를 작업 폴더 바로 아래에서만 찾습니다. 예전에는 하위 폴더 어디에 있든 같은 이름의 폴더를 전부 열어 줬습니다. 좁아진 것은 폴더를 찾는 범위이지, 폴더 안쪽이 아닙니다. 찾은 뒤 그 안쪽은 뒤에 붙은 ** 덕분에 몇 단계 아래까지 모두 규칙이 적용됩니다. 폴더가 어디에 있든 찾게 하려면 **/src/**처럼 앞에도 **를 붙입니다. 막기·물어봄 규칙은 예전 그대로입니다. 파일이 몇 단계 아래 폴더에 있든 똑같이 적용되므로, 막아 둔 것이 느슨해질 걱정은 없습니다. 외우실 필요는 없습니다. 클로드에게 “이 규칙이 하위 폴더까지 걸리는지 확인해 줘”라고 물으면 그 자리에서 답해 줍니다.
# 비밀번호·열쇠 파일은 읽기 자체를 차단
{
  "permissions": {
    "deny": ["Read(./.env)", "Read(./.env.*)", "Read(./secrets/**)"]
  }
}

이 읽기·편집 막기 규칙이 적용되는 곳은 두 군데입니다. 클로드 코드가 직접 쓰는 파일 도구, 그리고 클로드 코드가 파일을 다룬다고 알아보는 터미널 명령어(cat, head 등)입니다. 파이썬 스크립트처럼 스스로 파일을 여는 다른 프로그램까지는 막지 못합니다. 모든 프로그램을 운영체제 차원에서 막으려면 별도의 샌드박스 기능을 켜야 합니다(맨 아래 항목).

규칙은 파일과 터미널 명령어에만 있는 것이 아닙니다.

  • 웹 접근 — WebFetch(domain:example.com)처럼 도메인(사이트 주소) 단위로 어디에 접속할지 정합니다.
  • MCP 도구 — 외부에서 연결한 MCP 서버의 도구도 규칙으로 다룹니다. mcp__puppeteer는 그 서버의 모든 도구를, mcp__puppeteer__puppeteer_navigate는 특정 도구 하나만 겨냥합니다.
  • 서브에이전트 — Agent(Explore)처럼 특정 서브에이전트를 쓰지 못하게 막을 수 있습니다.

권한 모드 여섯 가지

규칙을 하나하나 정하는 대신, 세션(대화창을 열어 일하고 닫기까지) 전체의 일하는 방식을 한 번에 바꾸는 것이 권한 모드입니다. 모두 여섯 가지입니다. 넷은 대화 중에 Shift+Tab으로 돌려 쓰고, 남은 둘(dontAsk·bypassPermissions)은 클로드 코드를 켤 때 실행 옵션이나 설정으로만 지정하는 모드라 일상 운영에는 쓰지 않습니다.

위의 검사 순서에서 모드는 4번이라, 앞줄에 선 훅·막기·물어봄 규칙을 넘어서지 못합니다. 어떤 모드를 켜 두어도 막기 규칙에 걸린 일은 막히고, 물어봄 규칙에 걸린 일은 저절로 허락되지 않습니다. dontAsk 모드에서는 묻지 않고 거부하고, 나머지 모드에서는 그대로 물어봅니다. 그래서 모드는 묻는 횟수를 조절하는 손잡이이고, 마지노선을 세우는 일은 규칙 쪽에 맡깁니다. 여섯 모드가 각각 무엇을 하고 언제 쓰는지는 모드 페이지에 표로 정리해 두었습니다.

시작할 때 모드를 지정하려면 claude --permission-mode plan처럼 옵션을 붙입니다. 특정 프로젝트에서 늘 같은 모드로 시작하고 싶다면 설정 파일에 기본 모드를 적어 둡니다.

# 이 프로젝트는 늘 계획 모드로 시작
{
  "permissions": { "defaultMode": "plan" }
}
주의 bypassPermissions는 편하지만 위험합니다. 확인을 거의 다 건너뛰므로, 망가져도 괜찮은 별도 실험용 환경(컨테이너·가상 머신처럼 지금 쓰는 컴퓨터 본체와 따로 떼어 둔 공간)에서만 씁니다. 다만 이 모드에서도 rm -rf /처럼 시스템 전체나 홈 폴더를 지우려는 명령은 마지막 안전장치로 여전히 물어봅니다. 터미널에서 이 모드나 자동 모드로 일할 때는 이 질문에 2분 시간 제한이 붙습니다. 2분 안에 답이 없으면 그 명령을 거절하고 클로드에게 다른 방법을 알려 주므로, 자리를 비운 사이에 지워지는 일 없이 작업이 이어집니다. 질문이 떠 있을 때 아무 키나 누르면 시간 제한이 풀리고 답을 기다립니다. 실행 옵션 --dangerously-skip-permissions(권한 질문을 전부 건너뜀)도 같은 계열입니다. 이름부터 “위험하게”라고 적혀 있습니다.
반대쪽 끝 — --restricted 실행 옵션 --restricted는 그 반대입니다. 명령을 실행하는 도구와 웹 페이지를 읽어 오는 도구를 아예 빼고, 파일 도구는 작업 폴더 안으로만 묶고, bypassPermissions는 거부하며, 사용자·프로젝트·로컬 설정 파일도 읽지 않습니다. 남이 준 폴더를 처음 열어 볼 때, 또는 읽고 정리만 시킬 때 이 옵션으로 켭니다.

규칙을 어디에 적을까요 — 네 곳

권한 규칙은 여러 설정 파일에 나눠 둘 수 있고, 위치에 따라 적용 범위와 공유 여부가 다릅니다. 네 곳의 성격과 고르는 요령은 설정 파일 페이지에서 자세히 다룹니다.

범위파일 위치공유 여부
관리자파일 위치조직이 배포하는 관리 설정공유 여부회사 전체에 적용
사용자파일 위치~/.claude/settings.json공유 여부내 컴퓨터에만
프로젝트파일 위치.claude/settings.json공유 여부저장소에 함께 넣어 팀과 공유
로컬파일 위치.claude/settings.local.json공유 여부나만 쓰는 개인용(공유 안 함)

여러 곳에 규칙이 겹치면 관리자 설정이 가장 우선하고, 그다음이 실행할 때 붙인 옵션·로컬·프로젝트·사용자 순입니다. 어느 한 곳에서라도 막아 두면, 다른 어디서도 그것을 허용할 수 없습니다. 안전을 위해 막는 쪽이 항상 우선입니다.

팀과 공유하는 프로젝트 설정의 허용 규칙은, 그 폴더를 믿는다고 확인하는 창(워크스페이스 신뢰)에서 한 번 수락해야 실제로 켜집니다. 남이 만든 폴더를 열자마자 위험한 허용 규칙이 저절로 적용되는 것을 막기 위해서입니다. 막기·물어봄 규칙은 제한만 하므로 이 확인 없이도 바로 적용됩니다.

막히면 — 허용해 뒀는데 클로드가 계속 물어볼 때 가장 흔한 원인은 규칙 글자가 실제 명령과 어긋난 것입니다. 앞의 요령에서 본 별표 앞 빈칸이 대표적입니다(Bash(git *)와 Bash(git*)는 다르게 적용됩니다). 2026년 7월 18일 업데이트부터 폴더 규칙의 별표 범위가 좁아진 것도 같은 종류의 원인입니다. 그다음으로 흔한 원인은 막기·물어봄 규칙이 먼저 이긴 것입니다. 검사 순서가 막기 → 물어봄 → 허용이라, 어딘가에 겹치는 막기나 물어봄 규칙이 있으면 허용 규칙까지 차례가 오지 않습니다. 팀과 공유하는 프로젝트 설정에 적었다면 폴더 신뢰 확인을 아직 수락하지 않아 허용만 켜지지 않은 경우도 있습니다. 직원·스킬 파일이 든 .claude 폴더는 따로 보호하는 곳이라, 수동 모드와 편집 자동 승인 모드에서는 허용 규칙에 적어 두어도 고칠 때마다 묻습니다. 이때 질문에 뜨는 “Yes, and allow Claude to edit files in this project's .claude folder for this session”을 고르면 그 세션 동안은 그 폴더를 고칠 때 다시 묻지 않습니다. 내 컴퓨터 전체에 적용되는 ~/.claude 폴더도 같은 방식입니다.
지금 해 볼 것은 /permissions 입력입니다. 지금 들어가 있는 규칙과 그것이 어느 설정 파일에서 왔는지를 함께 보여 주므로, 내가 적은 규칙이 정말 들어가 있는지, 어느 목록에서 먼저 걸리는지가 한 화면에서 드러납니다. 그 화면을 보고도 모르겠으면 클로드에게 “방금 물어본 그 명령이 어느 규칙에 걸렸는지 알려 줘”라고 시키십시오.
그래도 안 되면 「이럴 때는? — 권한을 자꾸 물어봐요」 항목을 보십시오.

작업 폴더 넓히기

클로드 코드는 기본적으로 실행한 폴더 안의 파일만 다룹니다. 다른 폴더도 함께 다루게 하려면 아래 세 가지 방법 가운데 하나로 넓힙니다.

  • 시작할 때 — --add-dir <경로> 옵션을 붙입니다.
  • 대화 중에는 — /add-dir 명령어를 씁니다.
  • 늘 쓰려면 — 설정 파일의 additionalDirectories에 폴더를 적어 둡니다. 이 방법은 파일을 다루는 범위만 넓히고, 앞의 두 방법과 달리 그 폴더의 직원과 스킬은 읽어 오지 않습니다.

이렇게 더한 폴더도 원래 작업 폴더와 똑같은 권한 규칙을 따릅니다.

더 정교하게 — 훅과 샌드박스

정해진 규칙만으로 부족할 때는 훅으로 판단을 직접 더할 수 있습니다. 클로드 코드가 도구를 쓰려 할 때 먼저 훅이 끼어들어, 그 명령을 거부하거나 다시 물어보게 하거나 통과시킵니다. “이 목록의 명령어만은 무조건 막아라” 같은 나만의 검사를 넣는 식입니다. 다만 훅이 허용이라고 답해도 규칙을 넘지는 못합니다. 막기 규칙에 걸리면 여전히 막히고, 물어봄 규칙에 걸리면 여전히 물어봅니다. 훅이 건너뛰게 할 수 있는 것은 규칙이 없는 일의 질문뿐입니다.

샌드박스(sandbox)는 권한과는 다른 층의 안전장치입니다. 권한 규칙이 도구를 쓰기 전에 “이 사람을 방에 들여보낼까”를 문 앞에서 결정한다면, 샌드박스는 “일단 들어온 사람이 방 안에서 어디까지 손댈 수 있나”를 방 자체가 정해 두는 일입니다. 둘이 함께 작동해 겹겹이 지켜 줍니다.

참고한 자료 — 클로드 코드 공식 안내의 “권한 관리” 장. 이 페이지는 우리 회사가 실제로 일하며 쓰는 방식을 적은 것이며, 위에 적힌 날짜에 공식 안내와 맞춰 보았습니다. 공식 권한 문서 열기 →