Erro de Permissão — EACCES OpenClaw

Como resolver erros de permissão ao executar o OpenClaw. Sudo, chmod e configuração Linux.

Erro de Permissão

Descrição do Problema

Erros relacionados a permissões de arquivo ou sistema:

Error: EACCES: permission denied
Cannot write to directory
Permission denied: /var/log/openclaw
sudo: command not found
Possíveis Causas
  1. Arquivo de outro usuário - Criado com sudo ou outro user
  2. Diretório protegido - Tentando escrever em /var, /etc
  3. Porta privilegiada - Usando porta < 1024 sem sudo
  4. SELinux/AppArmor - Políticas de segurança bloqueando
Soluções1. Corrigir Permissões do Diretório
# Ver permissões atuais
ls -la ~/.openclaw/

# Corrigir dono
sudo chown -R $USER:$USER ~/.openclaw/

# Corrigir permissões
chmod -R 755 ~/.openclaw/
2. Criar Diretórios Necessários
# Criar diretório de logs
sudo mkdir -p /var/log/openclaw
sudo chown $USER:$USER /var/log/openclaw

# Criar diretório de dados
mkdir -p ~/.openclaw/{data,logs,sessions}
3. Usar Porta Não Privilegiada
# Portas < 1024 precisam de sudo
# Use portas maiores como 3000, 8080

# No config.yaml
gateway:
  port: 3000  # Em vez de 80 ou 443
4. Redirecionar Porta com iptables
# Redirecionar porta 80 para 3000 (sem precisar de root)
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
5. Verificar SELinux
# Ver status do SELinux
getenforce

# Temporariamente desabilitar (para teste)
sudo setenforce 0

# Verificar logs de bloqueio
sudo ausearch -m avc -ts recent
6. Verificar AppArmor
# Ver status
sudo aa-status

# Colocar em modo complain
sudo aa-complain /usr/bin/node
7. Executar com Capabilities
# Permitir bind em portas baixas sem sudo
sudo setcap 'cap_net_bind_service=+ep' $(which node)
Verificar Problemas
# Ver qual arquivo/diretório está com problema
namei -l ~/.openclaw/

# Ver permissões detalhadas
stat ~/.openclaw/config.yaml

# Verificar grupos do usuário
groups $USER
Problemas RelacionadosPrevenção
  • Nunca instale ou rode com sudo desnecessário
  • Use portas altas (> 1024) para serviços de usuário
  • Configure permissões corretamente na instalação
  • Crie um usuário dedicado para o serviço