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으로 특정 사용자만 허용하는 절충안도 있다.