Pular para o conteúdo principal

Guia de Configurações de Execução de Comandos

O PicoClaw fornece duas configurações-chave para controlar as permissões de execução de comandos, ajudando você a equilibrar funcionalidade e segurança.

Visão Geral

ConfiguraçãoCaminho no ConfigPadrãoDescrição
Ativar Execução de Comandostools.exec.enabledtrueControla globalmente se a execução de comandos é permitida
Permitir Execução Remota de Comandostools.exec.allow_remotetrueControla se sessões remotas podem executar comandos

Ativar Execução de Comandos

Descrição

Controla se a aplicação tem permissão para executar comandos. Quando desativado, todas as requisições de comando são rejeitadas.

Configuração

Via arquivo de configuração:

{
"tools": {
"exec": {
"enabled": false
}
}
}

Via variável de ambiente:

export PICOCLAW_TOOLS_EXEC_ENABLED=false

Casos de Uso

CenárioConfiguração Recomendada
Produção / modo somente leituraenabled: false
Desenvolvimento com automaçãoenabled: true
Ambientes de alta segurançaenabled: false

Impacto

Quando esta configuração está desativada:

  • Agentes não podem rodar comandos shell pela tool exec
  • Comandos shell em tarefas cron não podem rodar
  • Todas as requisições de comando são rejeitadas imediatamente

Permitir Execução Remota de Comandos

Descrição

Quando ativado, a execução de comandos é permitida para sessões remotas e contextos não-locais. Quando desativado, apenas contextos locais confiáveis podem executar comandos.

Configuração

Via arquivo de configuração:

{
"tools": {
"exec": {
"allow_remote": false
}
}
}

Via variável de ambiente:

export PICOCLAW_TOOLS_EXEC_ALLOW_REMOTE=false

Casos de Uso

CenárioConfiguração Recomendada
Uso apenas localallow_remote: false
Canais remotos (Telegram, Discord, etc.) precisam executar comandosallow_remote: true
Acesso remoto multiusuárioallow_remote: false (mais seguro)

Contexto de Segurança

Tipo de ContextoDescrição
Contexto local confiávelComandos executados diretamente em um terminal local ou CLI
Sessão remotaRequisições vindas de Telegram, Discord, WeChat, etc.
Contexto não-localChamadas via HTTP API, triggers de Webhook, etc.

Exemplos de Uso Combinado

Cenário 1: Desativar Totalmente a Execução de Comandos

Adequado para ambientes de alta segurança e somente leitura:

{
"tools": {
"exec": {
"enabled": false
}
}
}

Efeito: todas as requisições de comando são rejeitadas, tanto locais quanto remotas.

Cenário 2: Permitir Apenas Execução Local

Adequado quando é preciso automação local, mas execução remota de comandos não é permitida:

{
"tools": {
"exec": {
"enabled": true,
"allow_remote": false
}
}
}

Efeito:

  • Comandos no terminal local podem rodar
  • Requisições vindas de canais remotos (Telegram, Discord, etc.) são rejeitadas

Cenário 3: Totalmente Aberto (Padrão)

Adequado para ambientes de desenvolvimento ou redes confiáveis:

{
"tools": {
"exec": {
"enabled": true,
"allow_remote": true
}
}
}

Efeito: tanto a execução local quanto a remota de comandos são permitidas.

Interação com Outras Configurações de Segurança

ConfiguraçãoCaminho no ConfigDescrição
Restrição de Workspaceagents.defaults.restrict_to_workspaceLimita os caminhos de execução de comandos
Bloqueio de Comandos Perigosostools.exec.enable_deny_patternsBloqueia padrões de comandos perigosos
Padrões de Bloqueio Personalizadostools.exec.custom_deny_patternsAdiciona regras de bloqueio personalizadas

Exemplo Completo de Configuração de Segurança

{
"agents": {
"defaults": {
"restrict_to_workspace": true
}
},
"tools": {
"exec": {
"enabled": true,
"allow_remote": false,
"enable_deny_patterns": true,
"custom_deny_patterns": [
"\\brm\\s+-rf\\b",
"\\bsudo\\b"
]
}
}
}