Erro de Permissão

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/clawdbot
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ções

1. Corrigir Permissões do Diretório

# Ver permissões atuais
ls -la ~/.clawdbot/

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

# Corrigir permissões
chmod -R 755 ~/.clawdbot/

2. Criar Diretórios Necessários

# Criar diretório de logs
sudo mkdir -p /var/log/clawdbot
sudo chown $USER:$USER /var/log/clawdbot

# Criar diretório de dados
mkdir -p ~/.clawdbot/{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 ~/.clawdbot/

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

# Verificar grupos do usuário
groups $USER

Problemas Relacionados

Prevençã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