cr8rcho
튜토리얼

OpenClaw Discord에서 exec 승인 없이 명령 실행하기

2월 24일
4 분

OpenClaw Discord에서 exec 승인 없이 명령 실행하기

OpenClaw를 Discord에 연결해서 사용하다 보면, 어느 순간부터 AI가 터미널 명령을 실행할 때마다 "Approval required"라는 메시지가 뜨면서 아무것도 못 하는 상황을 맞닥뜨리게 된다. 이전에는 잘 되던 게 갑자기 안 되니 당황스럽다.

이 글에서는 왜 이런 일이 생기는지, 그리고 어떻게 해결하는지 정리한다.

문제 상황

Discord 채널에서 AI에게 git clone이나 cat 같은 간단한 명령을 요청하면 이런 응답이 돌아온다:

Approval required (id xxx). Approve to run; updates will arrive after completion.

승인을 어디서 해야 하는지도 불분명하고, 시간이 지나면 타임아웃으로 거부된다.

원인

OpenClaw 업데이트 과정에서 exec 보안 기본값이 강화되면서, 모든 셸 명령 실행에 승인이 필요한 모드로 변경된 것이다. 보안 관점에서는 맞는 방향이지만, 개인 환경에서 본인만 사용하는 경우에는 불편하다.

관련 설정은 세 가지다:

  • approvals.exec — 전역 exec 승인 여부
  • tools.elevated — elevated 도구 사용 여부
  • channels.discord.execApprovals — Discord 채널별 exec 승인 설정

해결 방법

1. 전역 exec 승인 비활성화

{
  "approvals": {
    "exec": {
      "enabled": false
    }
  }
}

2. elevated 도구 비활성화

{
  "tools": {
    "elevated": {
      "enabled": false
    }
  }
}

3. Discord execApprovals 섹션 제거

{
  "channels": {
    "discord": {
      "execApprovals": null
    }
  }
}

적용 명령

터미널에서 순서대로 실행한다:

openclaw configure --patch '{"approvals":{"exec":{"enabled":false}}}'
openclaw configure --patch '{"tools":{"elevated":{"enabled":false}}}'
openclaw configure --patch '{"channels":{"discord":{"execApprovals":null}}}'
openclaw gateway restart

최종 설정 상태

변경 후 openclaw.json의 관련 부분은 이렇게 된다:

{
  "approvals": {
    "exec": {
      "enabled": false
    }
  },
  "tools": {
    "elevated": {
      "enabled": false
    }
  },
  "channels": {
    "discord": {
      "enabled": true,
      "allowFrom": ["<Discord 사용자 ID>"],
      "guilds": {
        "<Guild ID>": {
          "requireMention": false
        }
      }
    }
  }
}

주의사항

  • 이 설정을 적용하면 AI가 모든 셸 명령을 승인 없이 실행한다. 신뢰할 수 있는 환경에서만 사용하자.
  • execApprovals 섹션이 남아있으면 approvals.exec.enabled: false보다 우선 적용될 수 있다. 반드시 제거해야 한다.
  • tools.elevated.enabled: true인 경우에도 승인 요청이 발생할 수 있다.
  • 설정 변경 후 openclaw gateway restart는 필수다.
  • 필요하다면 tools.elevated.allowFrom으로 특정 사용자만 허용하는 절충안도 있다.