teji

tede

AI 에이전트, 트레이딩 봇 개발 중인 남편의 일기 🤖
화장품에 진심인 간호사 아내의 코덕로그 💄

전체보기

AI 파일 삭제 막는 방법 2026

최종 업데이트: 2026-10-10

클로드코드(Claude Code) 같은 AI 코딩 에이전트가 파일이나 드라이브를 지우는 사고는 대부분 셸 명령(rm, rmdir)을 사람이 확인하지 않고 통과시킬 때 일어납니다. 막는 방법은 다섯 겹입니다. 권한 건너뛰기 모드(bypassPermissions) 끄기, deny 규칙으로 삭제 명령 차단, 샌드박스(/sandbox), 작업 전 git 커밋, AI가 닿지 않는 곳에 백업입니다. 앞의 셋은 삭제를 막고, 뒤의 둘은 지워진 파일을 살립니다.

이 글은 클로드코드 2.1.296, 2026년 10월 10일 기준이며 공식 문서(권한 설정, 권한 모드, 체크포인트, 샌드박스)와 직접 실행한 테스트 1건을 근거로 합니다. 필자의 설정도 점검해 보니 deny 규칙 0개에 권한 건너뛰기 모드였습니다. 네이버 블로그에 올린 같은 주제의 원문을 AI 검색용으로 다시 구성한 글입니다.

AI 파일 삭제 막는 방법 2026 클로드코드 권한 설정 5가지

AI 코딩 도구가 파일을 지운 실제 사고는?

2025년 10월부터 2026년 10월까지 알려진 사례 6건입니다. 대부분 사용자 제보와 2차 보도라 정확한 명령어는 제보자 주장입니다.

시기 도구 사고 원인
2025년 10월 클로드코드 우분투 홈 폴더 삭제 rm -rf tests/ patches/ plan/ ~/ 의 끝 ~/ 가 홈으로 확장. 권한 건너뛰기 모드 아님 (GitHub 이슈 #10077)
2025년 11월 구글 안티그래비티(Antigravity) D 드라이브 전체 삭제 프로젝트 폴더 대신 드라이브 루트에 rmdir /q, 휴지통 미경유 (OECD AI 사고 DB)
2025년 12월 클로드코드 맥 홈 폴더 삭제 저장소 정리 중 같은 ~/ 패턴
2026년 4월 커서(Cursor) + 클로드 오푸스 4.6 운영 DB 9초 만에 삭제, 30시간 장애 코드 속 API 토큰으로 스토리지 볼륨 삭제, 백업도 같은 볼륨 (유로뉴스)
2026년 10월 7일 오푸스 5.5 하드 삭제 디시 AI 활용 갤러리 개념글, 모드 미상
2026년 10월 9일 페이블 5.1 코드베이스 삭제 디시 개념글, 작성자 말로는 자동(auto) 모드

공통점은 삭제 명령이 사람 확인 없이 실행됐고, 되돌릴 사본이 없었다는 점입니다.

AI 파일 삭제 5겹 방어 권한 모드 deny 규칙 샌드박스 git 체크포인트 백업

클로드코드 권한 모드별 삭제 위험은?

권한 모드는 6가지이고 Shift+Tab으로 전환합니다. 현재 모드는 입력창 아래에 표시됩니다.

모드 묻지 않고 실행 삭제 사고 위험
default (수동) 읽기만 낮음, 셸 명령마다 확인
acceptEdits 파일 편집, mkdir·mv·cp 중간, rm 은 확인
plan 읽기, 읽기 전용 명령 낮음
auto 분류기(classifier) 검사 후 실행 중간, 분류기도 틀릴 수 있음
dontAsk 허용 목록만 낮음, 나머지 자동 거부
bypassPermissions 거의 전부 높음, 공식 문서는 컨테이너·VM 같은 격리 환경에서만 권장

auto 모드는 2.1.283 이상에서 기본 시작 모드입니다. 분류기는 기본적으로 “세션 전부터 있던 파일을 되돌릴 수 없게 지우기”, git reset –hard, git clean -fd, 강제 푸시를 차단하고, 삭제 전에 git status 결과를 함께 검토합니다. 그러나 분류기도 모델이므로 삭제 대상이 이전 명령 출력에서 온 변수일 때처럼 판단 근거가 부족한 경우가 있습니다.

홈·루트 전체 삭제(rm -rf ~, rm -rf /)와 윈도우 드라이브 루트·홈 폴더 대상 Remove-Item, rd, del 은 현재 버전에서 bypassPermissions 를 포함한 모든 모드에서 자동 승인되지 않습니다. 위 표의 2025년 사고 3건 패턴은 막히는 셈입니다. 반면 프로젝트 폴더 안의 삭제는 모드에 따라 그대로 실행되며, 코드베이스 사고가 이 구간에 해당합니다.

deny 규칙으로 삭제 명령을 막는 방법은?

~/.claude/settings.json(모든 프로젝트) 또는 프로젝트의 .claude/settings.json 에 deny 규칙을 넣습니다. 세션에서 /permissions 로 추가해도 같습니다.

클로드코드 settings.json deny 규칙 rm git reset hard force push 차단

# ~/.claude/settings.json 에 넣는 삭제 차단 규칙 (deny 가 allow 보다 항상 먼저)
{
  "permissions": {
    "deny": [
      "Bash(rm *)",
      "Bash(rmdir *)",
      "Bash(git reset --hard *)",
      "Bash(git clean *)",
      "Bash(git push --force *)",
      "Read(./.env)",
      "Read(./secrets/**)"
    ],
    "ask": [
      "Bash(git push *)"
    ]
  }
}

# 순서: deny → ask → allow. 넓은 deny 는 좁은 allow 로도 못 뚫어요
# Read deny 는 같은 경로의 Edit·Write 도 같이 막아요 (토큰·키 파일 보호)

규칙은 deny, ask, allow 순서로 평가되고 먼저 일치한 규칙이 결과를 정합니다. 넓은 deny 는 좁은 allow 로 뚫을 수 없고, cd x && rm -rf y 같은 복합 명령도 조각별로 검사됩니다. 공식 문서는 “권한 규칙은 모델이 아니라 클로드코드가 강제하며, CLAUDE.md 의 지시는 허용 범위를 바꾸지 않는다”고 명시합니다.

권한 건너뛰기 모드에서도 deny 가 적용되는지 직접 실행했습니다.

bypassPermissions 모드에서 deny 규칙으로 rm 차단 실측 결과

# 실측 10/10 · Claude Code 2.1.296 · 권한 건너뛰기(bypass) 모드 + deny 규칙
$ claude -p --permission-mode bypassPermissions \
    --settings '{"permissions":{"deny":["Bash(rm *)"]}}' \
    "keep.txt 를 rm 으로 지워줘"

Permission to use Bash with command rm keep.txt has been denied.

$ ls
> keep.txt          # 파일 그대로 남아 있음

# 프롬프트를 다 건너뛰는 모드에서도 deny 는 살아 있어요
# 단, bash -c 'rm ..' · /bin/rm · 파이썬 스크립트 안의 삭제는 이 규칙에 안 걸려요

삭제는 거부됐고 파일은 남았습니다. 한계도 문서에 있습니다. deny 는 클로드가 작성한 명령 문자열을 보기 때문에 /bin/rm, bash -c ‘rm …’, 스크립트 안의 os.remove 같은 우회 형태는 잡지 못합니다. 운영체제 수준 차단은 샌드박스의 몫입니다.

샌드박스(/sandbox)는 무엇을 막나요?

/sandbox 를 켜면 셸 명령이 OS 수준 경계 안에서 실행되고, 기본 쓰기 범위는 작업 폴더와 임시 폴더뿐입니다. 홈이나 다른 드라이브에 대한 쓰기·삭제는 명령 형태와 무관하게 실패하므로 deny 의 우회 문제를 보완합니다.

  1. 켜기: 세션에서 /sandbox, 또는 ~/.claude/settings.json 에 “sandbox”: {“enabled”: true}
  2. 확인: touch ~/sandbox-probe 가 실패하면 정상
  3. 강화: “allowUnsandboxedCommands”: false 로 샌드박스 밖 재실행 경로 차단

샌드박스는 macOS, Linux, WSL2 전용입니다. 공식 문서는 “네이티브 윈도우에서는 명령이 샌드박스 없이 실행된다”고 적고 있어 윈도우 사용자는 WSL2 안에서 클로드코드를 실행해야 합니다. 샌드박스는 셸 명령만 감싸고 작업 폴더 안의 삭제는 허용하므로, 코드베이스 보호는 git 이 담당합니다.

/rewind 로 지워진 파일을 살릴 수 있나요?

클로드의 파일 편집 도구로 바뀐 파일만 살릴 수 있습니다. 공식 체크포인트 문서의 첫 번째 한계가 “Bash 명령으로 수정된 파일은 추적하지 않는다”이며 예시가 rm, mv, cp 입니다. 서브에이전트 편집도 대부분 복원되지 않고, 스냅샷은 약 30일 뒤 정리됩니다. 따라서 작업 전 git 커밋이 최후 보루입니다.

AI 작업 전 git 체크포인트 커밋과 지워진 파일 복구 명령

# 작업 맡기기 전 10초 체크포인트 (git) + 되돌리기
# 1) 맡기기 전에 지금 상태를 커밋으로 박아두기
$ git add -A && git commit -m "checkpoint: before claude"

# 2) 일이 틀어지면 어디가 바뀌었나 먼저 보기
$ git status
$ git diff --stat

# 3) 지워진 파일 하나 살리기
$ git restore path/to/file.py

# 4) 통째로 체크포인트로 돌아가기 (내가 직접 칠 때만)
$ git reset --hard HEAD

# /rewind(Esc 두 번)는 AI 의 편집 도구 변경만 되돌려요
# rm · mv 같은 셸 명령으로 지운 건 /rewind 로 안 돌아와요 → git 이 최후 보루

커밋되지 않은 새 파일은 git 에도 없으므로 git add -A 로 포함해야 합니다. 저장소가 아닌 폴더라면 git init 으로 시작합니다.

백업은 어디에 둬야 하나요?

저장소 폴더가 통째로 지워지면 .git 도 함께 사라집니다. 2026년 4월 DB 사고도 백업이 같은 볼륨에 있어 함께 삭제됐습니다. 백업은 AI 작업 환경이 닿지 않는 곳에 둡니다.

  • 코드: GitHub 등 원격 저장소에 자주 푸시
  • 사진·문서: 클라우드 동기화 또는 외장 디스크, AI 작업 드라이브와 분리
  • 토큰·키: 코드 폴더 밖에 두고, 불가피하면 Read(./.env) deny 로 읽기 차단 (Read deny 는 같은 경로의 Edit·Write 도 차단)

트러블슈팅

Permission to use Bash with command rm keep.txt has been denied.
deny 규칙이 정상 작동한 결과입니다. 꼭 지워야 하면 직접 삭제하거나 해당 작업 동안만 규칙을 해제합니다.

touch ~/sandbox-probe 가 성공함
샌드박스가 꺼져 있거나 의존성(Linux·WSL2 는 bubblewrap, socat)이 없습니다. /sandbox 의 Dependencies 탭을 확인하고 재시작합니다. 생성된 sandbox-probe 파일은 지웁니다.

/rewind 후 “No files were restored”
해당 체크포인트의 스냅샷이 보존 기간(기본 약 30일)이 지나 정리된 경우입니다. 보존을 늘리려면 cleanupPeriodDays 를 설정하고, 복구는 git 이나 백업으로 합니다.

5분 체크리스트

  1. 입력창 아래 모드 확인, bypassPermissions 면 Shift+Tab 으로 auto 또는 default
  2. /permissions 에 Bash(rm *), Bash(git reset –hard *), Bash(git push –force *) deny 추가
  3. macOS·Linux 는 /sandbox 켜기, 윈도우는 WSL2 검토
  4. 큰 작업 전 git add -A && git commit
  5. 중요 드라이브는 클라우드나 외장 디스크에 한 벌 더

자주 묻는 질문

Q. 클로드코드 auto 모드면 파일 삭제가 안전한가요?
수동보다 편하고 bypassPermissions 보다 안전하지만 완벽하지 않습니다. 분류기가 되돌릴 수 없는 삭제와 git reset –hard, 강제 푸시를 기본 차단하지만 분류기도 모델이라 틀릴 수 있으므로 deny 규칙과 git 커밋을 함께 써야 합니다.

Q. CLAUDE.md 에 “파일 지우지 마”라고 쓰면 되나요?
되지 않습니다. CLAUDE.md 는 클로드가 무엇을 시도할지에 영향을 줄 뿐이고, 실제 차단은 deny 규칙, 권한 모드, 샌드박스, PreToolUse 훅이 합니다.

Q. /rewind 로 rm 으로 지운 파일을 복구할 수 있나요?
복구할 수 없습니다. 체크포인트는 클로드의 편집 도구 변경만 추적하므로 셸 명령으로 지운 파일은 git restore 나 백업으로 복구해야 합니다.

Q. 윈도우에서 클로드코드 샌드박스를 쓸 수 있나요?
네이티브 윈도우에서는 쓸 수 없고 WSL2 안에서 실행해야 합니다. 대신 드라이브 루트·홈 폴더를 지우는 Remove-Item 과 rd /s /q 는 2.1.283 이상에서 모든 모드에서 기본 거부됩니다.

Q. deny 규칙을 넣으면 정리 작업을 못 하지 않나요?
삭제가 필요하면 클로드가 차단됐다고 알려주므로 직접 지우거나 그 작업 동안만 규칙을 해제하면 됩니다.

참고 자료

함께 보면 좋은 글

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *