← 모든 프로젝트TOOL / OPEN SOURCE

DELETE-DENIED

지우기 전에,
한 번 더 확인합니다.

Codex의 터미널 삭제 명령을 검사하는 안전장치입니다. 보호 대상인 상위 폴더를 통째로 지우려는 요청을 차단하도록 만들었습니다.

04 / CODEX · RUST
DELETE-DENIED ↗
❯ rm -rf /important-folder
×
삭제 요청을 차단했습니다.보호 대상인 상위 폴더입니다.
보호 대상 경로의 차단 예시
LUCIANLABS / DELETE-DENIED직접 만들고, 함께 씁니다.
HOW IT WORKS

이렇게 사용합니다.

01

명령 실행 직전에 검사합니다.

Codex의 PreToolUse Bash 훅을 통해 터미널 명령을 확인합니다.

02

보호 경로와 비교합니다.

삭제 대상의 실제 경로를 확인하고, 중요한 상위 폴더에 대한 삭제 요청에 거부 응답을 반환합니다.

03

검사가 끝나면 종료합니다.

호출 사이에는 검사 프로세스가 남아 있지 않습니다. Codex Bash 훅에 들어오는 명령만 검사하며, OS 전체의 삭제를 막지는 않습니다.

IN DEPTH

자세히 알아보기

검사가 어디서 어떻게 일어나는지, 무엇을 보호하고 무엇은 보호하지 못하는지 정확히 적었습니다.

왜 만들었나

AI 코딩 에이전트에 터미널 권한을 주면, 정리하려던 임시 폴더 대신 실제 홈 폴더 같은 상위 경로를 통째로 지우는 사고가 생길 수 있습니다. 실제로 그런 사례가 공개적으로 보고됐고, 저장소의 조사 근거 문서에 확인된 사실과 확인되지 않은 부분을 나눠 정리해 두었습니다.

어떻게 동작하나

Codex의 공식 기능인 훅(hook)을 씁니다. 훅은 Codex가 도구를 쓰기 직전이나 직후에 정해진 검사를 끼워 넣는 기능이고, DELETE-DENIED는 실행 직전 단계인 PreToolUse에 연결됩니다.

  1. Codex가 Bash 도구로 터미널 명령을 준비합니다.
  2. 훅이 실행 직전에 작은 검사 프로그램을 한 번 호출합니다.
  3. 안전한 명령은 정책 파일을 읽지도 않고 바로 통과합니다.
  4. 삭제 후보일 때만 실제 위치를 기준으로 대상 경로를 확인하고 보호 경로와 비교합니다.
  5. 중요한 상위 폴더를 지우려는 명령에는 거부 응답을 돌려주도록 설계했습니다. 정상적인 프로젝트 작업은 허용합니다.
  6. 검사가 끝나면 프로세스도 종료됩니다.

호출 사이에는 아무 프로세스도 남지 않습니다. 폴더를 계속 훑거나 파일 변경을 감시하는 방식이 아니어서, 기다리는 동안 CPU와 메모리를 쓰지 않습니다. 검사 엔진은 Rust로 작성했습니다.

보호하는 것과 못 하는 것

보호 범위는 Codex의 PreToolUse Bash 훅으로 전달되는 터미널 삭제 호출입니다. 중요한 로컬 상위 경로와 현재 작업 폴더의 조상 경로를 지키고, 그 아래의 구체적인 프로젝트 하위 경로는 허용합니다.

OS 전체의 삭제 차단기가 아닙니다. Codex의 다른 파일 변경 방식, 화면이나 파일 관리 앱을 직접 조작하는 작업, 브라우저 다운로드, 원격·클라우드·데이터베이스 작업, 다른 프로그램과 다른 AI 도구는 범위 밖입니다. Codex 문서도 PreToolUse를 완전한 차단 경계가 아닌 안전장치로 설명합니다. Claude Code는 현재 지원하지 않습니다.

설치할 때 일어나는 일

설치기는 최신 릴리스를 내려받아 SHA-256을 확인하고, Codex app-server를 통해 정확히 DELETE-DENIED 훅 하나만 신뢰 목록에 올립니다. 마지막에는 자체 doctor로 등록과 활성화 상태를 확인합니다. app-server를 쓸 수 없으면 아무것도 쓰지 않고 실패합니다. macOS와 Windows 모두 현재 사용자의 ~/.codex 아래에만 씁니다.

# macOS (터미널)
curl -fsSL https://raw.githubusercontent.com/Seokwoooo/DELETE-DENIED/main/bootstrap/install.sh | sh

# Windows (PowerShell)
irm https://raw.githubusercontent.com/Seokwoooo/DELETE-DENIED/main/bootstrap/install.ps1 | iex

자주 묻는 질문

평소 프로젝트 작업까지 막히지는 않나요?

아닙니다. 보호하는 것은 중요한 상위 폴더와 현재 작업 폴더의 조상 경로이고, 그 아래의 구체적인 하위 경로 삭제는 허용합니다.

잠시 끄고 싶으면요?

저장소의 중지·재개 안내를 따르세요. 중지 상태는 다시 켤 때까지 유지되며, 현재 작업의 권한을 자동으로 넓히지 않습니다.

다시 실행하면 어떻게 되나요?

최신 릴리스로 업데이트합니다.

GET STARTED

내 작업에
바로 써보세요.

아래 문장을 Codex 메인 세션에 보내세요. macOS와 Windows 설치를 지원합니다.

CODEX
DELETE-DENIED를 설치해. README의 현재 OS용 한 줄 명령을 바로 실행해: https://github.com/Seokwoooo/DELETE-DENIED
GitHub에서 자세한 사용 방법 보기 ↗
← 다른 프로젝트 둘러보기