Claude Code의 bypassPermissions가 작동하지 않을 때, 사용자 설정으로 옮겨 재시작하기
요약
Claude Code 사용 시 매번 권한 확인 창이 뜨는 문제를 해결하는 방법을 안내합니다. 사용자 설정 파일(settings.json)의 defaultMode를 'bypassPermissions'로 변경하고, 프로젝트별 설정 파일(.claude/settings.*.json)에서 해당 설정을 삭제해야 합니다.
핵심 포인트
- 사용자 설정 파일에 defaultMode를 'bypassPermissions'로 지정하세요.
- 프로젝트 폴더 내 .claude/settings.*.json의 defaultMode 항목을 제거해야 합니다.
- 이 설정은 실행 직후 상태 표시줄에 반영되어야 정상 작동합니다.
이것은 기기(端末)에서 Claude Code를 실행하는 시점부터 bypassPermissions(권한 요청을 하지 않는 모드)로 설정하는 절차입니다. 해야 할 일은 모드 지정 위치를 사용자 설정 파일로 옮기고, 프로젝트 측의 지정을 삭제한 후 다시 시작하는 것입니다. 'bypassPermissions로 했는데도 매번 확인 창이 뜬다'는 분들을 대상으로 합니다. VS Code 확장 기능은 모드 로딩 위치가 다르므로, 이 글에서는 다루지 않습니다.
완성된 상태: 실행 직후 화면 하단에 '⏵⏵ bypass permissions on' 표시
실행 직후, 화면 하단의 상태 표시줄이 이 문구가 됩니다. 이 상태라면, 편집이나 커맨드를 사용할 때마다 '허용하시겠습니까?'라는 창이 뜨며 멈추는 일이 평소 작업이 아니게 됩니다.
예외도 있습니다. ask(매번 요청하는 목록)에 포함된 작업이나 홈 폴더와 같은 중요한 위치를 삭제하는 작업 등은 bypass 상태에서도 확인 창이 나타납니다.
해야 할 일
1. Claude에게 그대로 맡기기
평소 실행하는 폴더에서 Claude Code를 열고, 아래 문구를 그대로 입력합니다. JSON의 쉼표나 괄호 작성 실수가 적으므로, 우선 이 요청 방식이 추천됩니다.
시작할 때 bypassPermissions로 시작되게 하고 싶습니다. 다음 두 가지를 해주세요.
1. 사용자 설정 파일(mac・Linux는 ~/.claude/settings.json, Windows는 %USERPROFILE%\.claude\settings.json)의 permissions.defaultMode를 "bypassPermissions"로 변경해 주세요. 파일이 없으면 만들어 주세요.
2. 이 프로젝트의 .claude/settings.json과 .claude/settings.local.json에 permissions.defaultMode가 있다면, 그 항목만 지워주세요.
...
작업 도중에 덮어쓰기 허용을 요청받으면, 허용합니다. 화면 하단이 auto일 때는 자동 판정이 설정 파일의 덮어쓰기를 막는 경우가 있습니다. 요청해서 막혔다면, 절차 2에서 수동으로 수정합니다. 완료되면 절차 3으로 넘어갑니다.
2. 직접 수정할 경우
수동으로 수정할 때 열어야 하는 파일은 다음 두 종류입니다.
사용자 설정 파일(이 PC의 사용자용)
-
mac・Linux:
~/.claude/settings.json -
Windows:
%USERPROFILE%\.claude\settings.json
Windows에서는 %USERPROFILE%\.claude를 탐색기 주소창에 붙여넣으면 해당 폴더가 열립니다. PowerShell에서는 notepad $env:USERPROFILE\.claude\settings.json로 메모장에서 열 수 있습니다. 탐색기에서는 확장자가 숨겨져 있어 새로 만들 경우 settings.json.txt가 되기 쉬우므로, 이름의 끝을 확인해야 합니다. mac의 Finder에서는 .claude처럼 '.'으로 시작하는 폴더는 숨김 처리되어 있습니다. Command+Shift+G를 누르고 ~/.claude/settings.json이라고 입력하면 해당 파일이 있는 위치가 열립니다.
permissions 아래에 defaultMode(시작할 때의 모드를 결정하는 항목)를 배치합니다. 기존 항목은 지우지 않고, permissions가 이미 있다면 그 안에 추가합니다. 앞뒤 항목과의 쉼표(,)를 맞춥니다. 마지막 항목 뒤에는 쉼표를 붙이지 않습니다. 파일이 아직 없다면, 아래 내용으로 새로 만듭니다.
{
"permissions": {
"defaultMode": "bypassPermissions"
...
프로젝트 설정 파일(실행할 폴더에 있는 .claude 안)
settings.json
settings.local.json
둘 중 어느 곳에 defaultMode가 적혀 있다면, 그 줄을 삭제합니다. 지운 줄이 }
바로 위(괄호 안의 마지막 항목)였을 때만, 한 줄 전 끝에 있는 쉼표를 삭제합니다. 뒤에 아직 항목이 남아있다면, 쉼표는 그대로 두어야 합니다. 남겨두면 해당 설정이 사용자 설정 파일보다 우선순위를 가지게 되어 bypass로 시작하지 않게 됩니다. 다른 폴더의 프로젝트 설정 파일에도 bypass를 작성했다면, 그곳에서도 같은 방식으로 삭제해야 합니다.
3. 사용자가 할 일 (재시작 및 두 질문에 답하기)
- 열려 있는 화면을 일단 종료하고, 다시
claude
로 실행합니다. 모드는 시작하는 순간에 결정되며, 열어둔 상태의 화면에는 파일 변경 사항이 반영되지 않습니다. 처음bypass로 실행했을 때 "자신의 책임으로 사용할 것인지"를 묻는 화면이 한 번 나옵니다. 동의하면 그 답변은 사용자 설정 파일의
skipDangerousModePermissionPrompt
라는 항목에 저장되어, 두 번째부터는 나타나지 않습니다. 나타나지 않아도 문제없습니다 (이미 동의했다면 나오지 않음). 참고로, 이 항목을 프로젝트의settings.local.json에만 작성할 경우,claude --bg로 백그라운드에서 실행된 세션은bypass가 아닌 상태로 시작됩니다 (v2.1.293 이상). 이 항목은 사용자 설정 파일에 두는 것이 좋습니다. "auto 모드로 전환할까요?"라는 질문을 받으면 거절합니다. Pro, Max, Team 플랜 사용자의 경우 한 번 나타날 수 있습니다. 수락하면defaultMode가 auto로 바뀌고,bypass는 해제됩니다.
4. (추가) 위험한 작업을 막고 싶다면 deny를 추가하세요
bypass를 하더라도, deny(실행 금지 목록)에 넣은 명령어는 차단할 수 있습니다. deny는 모드와 관계없이 작동하며, allow(허용 목록)보다 먼저 확인됩니다. 작성하는 위치는 사용자 설정 파일이든 프로젝트 설정 파일이든 상관없습니다.
아래는 사용자 설정 파일에 defaultMode와 deny를 나열한 예시입니다 (자주 사용되는 작성 방식의 예). 이 세 가지 항목은 각각 강제로 덮어쓰기(force push), 기록 수정, 폴더별 삭제를 막습니다.
{
"permissions": {
"defaultMode": "bypassPermissions",
...
Claude가 파일 편집을 통해 특정 파일이나 폴더를 보호하려면, Edit(경로)로 작성합니다 (Write(경로)라고 작성해도 인식되지 않습니다).
Claude에게 요청할 때는 절차 1의 문장 대신 다음을 입력합니다.
실행 시 bypassPermissions로 시작하도록 하고, 위험한 작업은 deny로 막고 싶습니다. 다음 세 가지를 수행해 주세요.
1. 사용자 설정 파일(mac・Linux는 ~/.claude/settings.json, Windows는 %USERPROFILE%\.claude\settings.json)의 permissions.defaultMode를 "bypassPermissions"로 변경합니다. 파일이 없으면 생성합니다.
2. 이 프로젝트의 .claude/settings.json과 .claude/settings.local.json에 permissions.defaultMode가 있다면, 해당 항목만 삭제합니다.
...
성공 여부 확인 방법
-
실행 직후 화면 하단의 상태 표시를 확인합니다. "⏵⏵ bypass permissions on"이라면 성공입니다. 다른 표시라면 "잘 안 될 때"로 진행합니다.
-
deny를 추가한 경우, 차단되는지 한 번만 확인해 봅니다. -
deny에 다음을 임시로 추가하고 다시 실행합니다.
"Bash(echo deny-test *)" -
명령어가 작동하지 않고 거부되었다면 성공입니다. 화면에는 Claude가 "거부되었습니다"라고 응답할 것입니다. 확인이 끝났으면, 추가했던 한 줄을 삭제합니다.
-
Windows에서는 Claude가 echo를 PowerShell로 실행하는 경우가 있습니다. 이 경우 Bash 형식의
deny에 해당하지 않아 효과가 없는 것처럼 보일 수 있습니다. -
deny에
확인하기 위해서는 실행되어도 문제가 없는 명령어를 사용합니다. force push와 같은 실제 작업으로 테스트할 경우, 규칙 작성 방식이 잘못되었을 때 실제로 실행됩니다. 멈추지 않는 경우에는 요청한 명령어의 형태가 deny 작성 방식과 일치하는지 다시 확인해야 합니다.
작동하지 않을 때
화면 하단에 bypass 표시가 안 될 때
- '⏸ manual mode on'(확인 필요 모드): 절차 2에서 본 프로젝트 측 두 파일 중
defaultMode줄이 삭제되었는지. 파일의 쉼표나 괄호가 깨지지 않았는지. 파일을 수정한 후, 한 번 종료했다가 다시 시작했는지 - '⏵⏵ auto mode on'(자동 판정 모드): 사용자 설정 파일이 올바른 위치에 있고,
permissions아래에defaultMode가 있는지. 파일의 쉼표나 괄호가 깨지지 않았는지. auto로 전환하는 질문에 동의하지 않았는지(동의했다면, 값을bypassPermissions로 되돌린 후 다시 시작합니다)
VS Code 확장 기능에서 사용할 때
확장 기능은 시작 시 모드를 프로젝트 설정 파일에서 가져오지 않고, 확장 기능 측 설정인 claudeCode.initialPermissionMode으로 결정합니다. bypass를 선택하려면, 확장 기능 설정에서 'Allow dangerously skip permissions'를 켜야 할 수도 있습니다. 여기서 소개한 절차는 터미널용입니다.
bypass라고 표시되는데 확인을 요청할 때
ask에 입력된 작업이나 중요한 부분을 삭제하는 작업은 bypass에서도 질문을 받을 수 있습니다. 공식 문서 목록과 대조해 보세요.
원리 (간략히)
모드는 시작 시 설정 파일의 defaultMode가 읽혀 결정됩니다. v2.1.257 변경으로, bypassPermissions를 프로젝트 설정 파일에 작성해도 더 이상 읽히지 않게 되었습니다(이 경우 Manual=확인 필요로 시작합니다). 사용자 설정 파일과, 시작 시 --permission-mode 지정은 여전히 읽힙니다.
모드 지정이 여러 파일에 있을 경우, 프로젝트 측이 우선권을 가집니다. 절차 2에서 프로젝트 측을 삭제하는 이유가 이것입니다(공식 설명을 조합한 해석으로, 남겨진 상태에서의 시작은 시도하지 않았습니다).
모드를 아무것도 지정하지 않으면, v2.1.283 이후의 터미널에서는 auto로 시작됩니다. 또한, bypass 중에는 allow 목록이 참조되지 않고, deny가 참조됩니다.
확인한 버전
Claude Code v2.1.296 · 2026년 10월 12일에 확인했습니다(공식 문서 및 버전별 변경 이력인 CHANGELOG). 이보다 새로운 버전은 확인하지 않았습니다.
관련
- 권한 모드 (공식): https://code.claude.com/docs/ja/permission-modes
- 권한 규칙 (공식): https://code.claude.com/docs/ja/permissions
- 설정 파일 (공식・영어): https://code.claude.com/docs/en/settings
- CHANGELOG: https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md
bypass가 작동하지 않게 된 것을 제가 깨달은 경위는 note에 작성했습니다.
이 글은 AI(Claude)의 도움을 받아 작성했으며, 내용은 제가 확인했습니다.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기