본문으로 바로가기
리옵트 핸드북
리옵트 핸드북
OpenCode 고급 활용

기본 세팅

Ch1. 설치/업데이트Ch2. 고급 설정

에이전트 & 권한

Ch3. 에이전트 설계Ch4. 권한 정책Ch5. 모드 활용

워크플로우

Ch6. 커스텀 커맨드Ch7. TUI 고급 활용Ch8. 포매터 자동화Ch9. 모델 선택

확장 & 통합

Ch10. 플러그인 확장Ch11. GitHub & IDE 통합Ch12. LSP 코드 인텔리전스Ch13. 공유/프라이버시

검증

검증 리포트업데이트 내역
핸드북›OpenCode 고급 활용›Ch4. 권한 정책

Ch4. 권한 정책

allow·ask·deny 세 권한 레벨, Bash 명령 glob 패턴 매칭 순서, task 서브에이전트 권한과 에이전트별 오버라이드로 안전한 정책을 설계하는 방법입니다.

핵심 요약

  • 권한은 allow(즉시 실행)·ask(승인 요청)·deny(완전 차단) 세 레벨로, edit·bash·webfetch에 적용합니다.
  • 기본값을 ask로 두고 작업 범위가 명확한 에이전트에만 허용을 확대하는 최소 권한 원칙이 안전합니다.
  • Bash 명령은 glob 패턴으로 선택 제어하며 위에서 아래로 먼저 매칭된 규칙이 적용되므로 구체적 규칙을 위에 배치합니다.
  • task 권한으로 서브에이전트를 만들고 실행하는 동작을 제어하고, 에이전트별 permission 블록으로 독립 정책을 덮어씁니다.
  • 위험 명령(rm·sudo)을 먼저 deny, 부수효과 없는 읽기 명령을 allow, 나머지는 ask로 두는 3단계 설계를 권장합니다.

권한 설정은 OpenCode 운영 안정성을 좌우합니다. 기본값은 ask로 두고, 작업 범위가 명확한 에이전트에만 허용을 확대하는 방식이 안전합니다.

권한 레벨

레벨동작
allow승인 없이 즉시 실행
ask실행 전 사용자 승인 요청
deny도구 접근 완전 차단

적용 대상: edit, bash, webfetch

기본 권한 설정

{
  "permission": {
    "edit": "ask",
    "bash": "ask",
    "webfetch": "allow"
  }
}

Bash 명령 Glob 패턴

특정 명령만 골라 허용하거나 차단합니다. 위에서 아래로 훑어 내려가다 처음 걸리는 규칙이 적용됩니다.

{
  "permission": {
    "bash": {
      "grep *": "allow",
      "git status": "allow",
      "git diff *": "allow",
      "git push *": "ask",
      "git *": "ask",
      "rm *": "deny",
      "sudo *": "deny",
      "*": "deny"
    }
  }
}

패턴 매칭 순서

git push origin main은 "git push *": "ask" 규칙에 먼저 매칭되므로 승인 요청이 뜹니다. 더 구체적인 규칙을 위에 배치하세요.

서브에이전트 태스크 권한

서브에이전트를 만들고 실행하는 동작을 제어합니다.

{
  "permission": {
    "task": {
      "*": "deny",
      "reviewer-*": "allow",
      "explore": "allow"
    }
  }
}

에이전트별 권한 오버라이드

커스텀 에이전트마다 독립된 권한 정책을 둘 수 있습니다.

{
  "agent": {
    "deploy": {
      "description": "배포 에이전트",
      "permission": {
        "bash": {
          "deploy.sh": "allow",
          "*": "deny"
        },
        "edit": "deny"
      }
    }
  }
}

실전 권한 정책 설계

1단계: 위험 명령 차단

rm -rf, sudo, docker rm 등 위험한 명령을 먼저 deny로 차단합니다.

2단계: 안전한 읽기 허용

grep, cat, git status, git log 등 부수효과가 없는 명령을 allow로 설정합니다.

3단계: 나머지는 ask

나머지 명령은 기본 ask로 유지하여 실행 전 확인합니다.

고급 팁

  • 바로 차단할 규칙부터 정의: 위험한 명령을 먼저 deny
  • 외부 디렉토리 제한: 프로젝트 외부 접근은 external_directory로 제한
  • 무한 루프 방지: doom_loop 제약을 기본값으로 유지
  • 최소 권한 원칙: 에이전트별로 필요한 최소 권한만 부여

참고 문서

  • 권한 설정: https://opencode.ai/docs/permissions
  • 에이전트와 권한: https://opencode.ai/docs/agents

관련 문서

Ch6. 커스텀 커맨드

.opencode/commands/의 Markdown 커맨드 작성법, $ARGUMENTS·@파일·!셸 변수 참조, opencode run 비대화형 실행과 CI 코드 리뷰 자동화를 정리합니다.

검증 리포트

OpenCode 고급 활용 핸드북의 콘텐츠 검증 및 업데이트 이력

Ch3. 승인/샌드박스 전략

Codex 고급 활용 · 승인 정책, 자동 승인 범위, 안전한 운영 패턴

Ch3. 에이전트 설계

역할 분리, 커스텀 에이전트 구성, 서브에이전트 활용

Ch5. 모드 활용

Tab 키로 전환하는 Build·Plan 모드의 권한 차이, Plan→Build 2단계 워크플로우, primary 에이전트로 보안 감사 같은 커스텀 모드를 추가하는 방법을 다룹니다.

On this page

권한 레벨기본 권한 설정Bash 명령 Glob 패턴서브에이전트 태스크 권한에이전트별 권한 오버라이드실전 권한 정책 설계1단계: 위험 명령 차단2단계: 안전한 읽기 허용3단계: 나머지는 ask고급 팁참고 문서