OpenClaw usaDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
@openclaw/fs-safe para operações locais de arquivo sensíveis à segurança: leituras/gravações limitadas à raiz, substituição atômica, extração de arquivos compactados, workspaces temporários, estado JSON e tratamento de arquivos de segredo.
O objetivo é uma barreira de proteção de biblioteca consistente para código OpenClaw confiável que recebe nomes de caminho não confiáveis. Ela não é uma sandbox. Permissões do sistema de arquivos do host, usuários do sistema operacional, contêineres e a política de agente/ferramenta ainda definem o raio de impacto real.
Padrão: sem auxiliar Python
OpenClaw deixa o auxiliar POSIX Python do fs-safe desativado por padrão. Por quê:- o Gateway não deve iniciar um sidecar Python persistente, a menos que um operador tenha optado por isso;
- muitas instalações não precisam do reforço adicional contra mutação de diretório pai;
- desabilitar Python mantém o comportamento de pacote/runtime mais previsível em ambientes de desktop, Docker, CI e aplicativo empacotado.
FS_SAFE_PYTHON_MODE e FS_SAFE_PYTHON.
O que continua protegido sem Python
Com o auxiliar desativado, OpenClaw ainda usa os caminhos Node do fs-safe para:- rejeitar escapes de caminho relativo como
.., caminhos absolutos e separadores de caminho onde apenas nomes são permitidos; - resolver operações por meio de um identificador de raiz confiável em vez de verificações ad hoc
path.resolve(...).startsWith(...); - recusar padrões de symlink e hardlink em APIs que exigem essa política;
- abrir arquivos com verificações de identidade quando a API retorna ou consome conteúdo de arquivo;
- gravações atômicas em temporário irmão para arquivos de estado/configuração;
- limites de bytes para leituras e extração de arquivos compactados;
- modos privados para segredos e arquivos de estado quando a API os exige.
O que Python adiciona
No POSIX, o auxiliar opcional do fs-safe mantém um processo Python persistente e usa operações de sistema de arquivos relativas a fd para mutações de diretório pai, como renomear, remover, criar diretório, stat/list e alguns caminhos de gravação. Isso reduz janelas de corrida de mesmo UID em que outro processo pode trocar um diretório pai entre a validação e a mutação. É defesa em profundidade para hosts onde processos locais não confiáveis podem modificar os mesmos diretórios em que o OpenClaw está operando. Se sua implantação tem esse risco e há garantia de que Python existe, use:require em vez de auto quando o auxiliar fizer parte da sua postura de segurança; auto intencionalmente recorre ao comportamento apenas Node se o auxiliar estiver indisponível.
Orientação para Plugin e core
- O acesso a arquivos voltado a plugins deve passar por auxiliares
openclaw/plugin-sdk/*, não porfsbruto, quando um caminho vem de uma mensagem, saída de modelo, configuração ou entrada de plugin. - Código core deve usar os wrappers locais do fs-safe em
src/infra/*para que a política de processo do OpenClaw seja aplicada de forma consistente. - A extração de arquivos compactados deve usar os auxiliares de arquivo compactado do fs-safe com limites explícitos de tamanho, contagem de entradas, links e destino.
- Segredos devem usar auxiliares de segredo do OpenClaw ou auxiliares de segredo/estado privado do fs-safe; não implemente manualmente verificações de modo em torno de
fs.writeFile. - Se você precisa de isolamento contra usuários locais hostis, não dependa apenas do fs-safe. Execute Gateways separados sob usuários/hosts separados do sistema operacional ou use sandboxing.