Pular para o conteúdo principal

Permissões Snap (Linux)

Esta página explica como configurar permissões para o Rayforge quando instalado como pacote Snap no Linux.

O Que São Permissões Snap?​

Snaps são aplicações containerizadas que rodam em uma sandbox para segurança. Por padrão, elas têm acesso limitado a recursos do sistema. Para usar certos recursos (como portas seriais para controladores de laser), você deve conceder permissões explicitamente.

Permissões Necessárias​

O Rayforge precisa destas interfaces Snap conectadas para funcionalidade completa:

InterfacePropósitoObrigatório?
serial-portAcesso a dispositivos seriais USB (controladores de laser)Sim (para controle de máquina)
homeLer/escrever arquivos no seu diretório homeConectado automaticamente
removable-mediaAcessar drives externos e armazenamento USBOpcional
networkConectividade de rede (para atualizações, etc.)Conectado automaticamente

Concedendo Acesso à Porta Serial​

Esta é a permissão mais importante para o Rayforge.

Pré-requisito: Membro do Grupo dialout​

Em distribuições baseadas em Debian, seu usuário deve ser membro do grupo dialout, mesmo ao usar o pacote Snap. Sem esta associação ao grupo, você pode receber mensagens AppArmor DENIED ao tentar acessar portas seriais.

# Adicione seu usuário ao grupo dialout
sudo usermod -a -G dialout $USER

Importante: Você deve sair e entrar novamente (ou reiniciar) para mudanças de grupo terem efeito.

Verifique Permissões Atuais​

# Veja todas as conexões para o Rayforge
snap connections rayforge

Procure pela interface serial-port. Se mostrar "desconectado" ou "-", você precisa conectá-la.

Conecte a Interface de Porta Serial​

# Conceda acesso à porta serial
sudo snap connect rayforge:serial-port

Você só precisa fazer isso uma vez. A permissão persiste entre atualizações do app e reinicializações.

Verifique a Conexão​

# Verifique se serial-port está conectado agora
snap connections rayforge | grep serial-port

Saída esperada:

serial-port rayforge:serial-port :serial-port -

Se você vir um indicador plug/slot, a conexão está ativa.


Concedendo Acesso a Mídia Removível​

Se você quer importar/exportar arquivos de drives USB ou armazenamento externo:

# Conceda acesso a mídia removível
sudo snap connect rayforge:removable-media

Agora você pode acessar arquivos em /media e /mnt.


Solução de Problemas de Permissões Snap​

Porta Serial Ainda Não Funciona​

Após conectar a interface:

  1. ** Reconecte o dispositivo USB:**

    • Desconecte seu controlador de laser
    • Espere 5 segundos
    • Conecte novamente
  2. ** Reinicie o Rayforge:**

    • Feche o Rayforge completamente
    • Relance a partir do menu de aplicativos ou:
      snap run rayforge
  3. ** Verifique se a porta aparece:**

    • Abra Rayforge Configurações Máquina
    • Procure portas seriais no menu suspenso
    • Deve ver /dev/ttyUSB0, /dev/ttyACM0, ou similar
  4. ** Verifique se o dispositivo existe:**

    # Liste dispositivos seriais USB
    ls -l /dev/ttyUSB* /dev/ttyACM*

"Permissão Negada" Apesar da Interface Conectada​

Isso é raro mas pode acontecer se:

  1. ** A instalação do Snap está quebrada:**

    # Reinstale o snap
    sudo snap refresh rayforge --devmode
    # Ou se isso falhar:
    sudo snap remove rayforge
    sudo snap install rayforge
    # Reconecte as interfaces
    sudo snap connect rayforge:serial-port
  2. ** Regras udev conflitantes:**

    • Verifique /etc/udev/rules.d/ por regras personalizadas de porta serial
    • Elas podem conflitar com o acesso a dispositivos do Snap
  3. ** Negações AppArmor:**

    # Verifique por negações AppArmor
    sudo journalctl -xe | grep DENIED | grep rayforge

    Se você vir negações para portas seriais, pode haver um conflito de perfil AppArmor.

Não Consegue Acessar Arquivos Fora do Diretório Home​

Por design, Snaps não podem acessar arquivos fora do seu diretório home a menos que você conceda removable-media.

Opções de workaround:

  1. ** Mova arquivos para seu diretório home:**

    # Copie arquivos SVG para ~/Documents
    cp /algum/outro/local/*.svg ~/Documents/
  2. ** Conceda acesso removable-media:**

    sudo snap connect rayforge:removable-media
  3. ** Use o seletor de arquivos do Snap:**

    • O seletor de arquivos embutido tem acesso mais amplo
    • Abra arquivos através de Arquivo Abrir em vez de argumentos de linha de comando

Gerenciamento Manual de Interfaces​

Liste Todas as Interfaces Disponíveis​

# Veja todas as interfaces Snap no seu sistema
snap interface

Desconecte uma Interface​

# Desconecte serial-port (se necessário)
sudo snap disconnect rayforge:serial-port

Reconecte Após Desconectar​

sudo snap connect rayforge:serial-port

Alternativa: Instale a Partir do Código Fonte​

Se as permissões Snap forem muito restritivas para seu fluxo de trabalho:

Opção 1: Compile a partir do código fonte

# Clone o repositório
git clone https://github.com/kylemartin57/rayforge.git
cd rayforge

# Instale dependências usando pixi
pixi install

# Execute o Rayforge
pixi run rayforge

Benefícios:

  • Sem restrições de permissão
  • Acesso completo ao sistema
  • Depuração mais fácil
  • Versão de desenvolvimento mais recente

Desvantagens:

  • Atualizações manuais (git pull)
  • Mais dependências para gerenciar
  • Sem atualizações automáticas

Opção 2: Use Flatpak (se disponível)

Flatpak tem sandboxing similar mas às vezes com modelos de permissão diferentes. Verifique se o Rayforge oferece um pacote Flatpak.


Melhores Práticas de Permissão Snap​

Conecte Apenas o Que Você Precisa​

Não conecte interfaces que você não usa:

  • Conecte serial-port se você usa um controlador de laser
  • Conecte removable-media se você importa de drives USB
  • L Não conecte tudo "por precaução" - derrota o propósito de segurança

Verifique a Fonte do Snap​

Sempre instale da Snap Store oficial:

# Verifique o publicador
snap info rayforge

Procure por:

  • Publicador verificado
  • Fonte de repositório oficial
  • Atualizações regulares

Entendendo a Sandbox Snap​

O Que Snaps Podem Acessar por Padrão?​

Permitido:

  • Arquivos no seu diretório home
  • Conexões de rede
  • Display/áudio

Não permitido sem permissão explícita:

  • Portas seriais (dispositivos USB)
  • Mídia removível
  • Arquivos de sistema
  • Diretórios home de outros usuários

Por Que Isso Importa para o Rayforge​

O Rayforge precisa:

  1. ** Acesso ao diretório home** (concedido automaticamente)

    • Para salvar arquivos de projeto
    • Para ler arquivos SVG/DXF importados
    • Para armazenar preferências
  2. ** Acesso à porta serial** (deve ser concedido)

    • Para comunicar com controladores de laser
    • Esta é a permissão crítica
  3. ** Mídia removível** (opcional)

    • Para importar arquivos de drives USB
    • Para exportar G-code para armazenamento externo

Depurando Problemas de Snap​

Habilite Logging Verboso do Snap​

# Execute o Snap com saída de depuração
snap run --shell rayforge
# Dentro do shell do snap:
export RAYFORGE_LOG_LEVEL=DEBUG
exec rayforge

Verifique os Logs do Snap​

# Veja logs do Rayforge
snap logs rayforge

# Siga logs em tempo real
snap logs -f rayforge

Verifique o Journal do Sistema para Negações​

# Procure por negações AppArmor
sudo journalctl -xe | grep DENIED | grep rayforge

# Procure por eventos de dispositivo USB
sudo journalctl -f -u snapd
# Então conecte seu controlador de laser

Obtendo Ajuda​

Se você ainda está tendo problemas relacionados ao Snap:

  1. ** Verifique as permissões primeiro:**

    snap connections rayforge
  2. ** Tente um teste de porta serial:**

    # Se você tem screen ou minicom instalado
    sudo snap connect rayforge:serial-port
    # Então teste no Rayforge
  3. ** Reporte o problema com:**

    • Saída de snap connections rayforge
    • Saída de snap version
    • Saída de snap info rayforge
    • Sua versão de distribuição Ubuntu/Linux
    • Mensagens de erro exatas
  4. ** Considere alternativas:**

    • Instale a partir do código fonte (veja acima)
    • Use um formato de pacote diferente (AppImage, Flatpak)

Comandos de Referência Rápida​

# Conceda acesso à porta serial (mais importante)
sudo snap connect rayforge:serial-port

# Conceda acesso a mídia removível
sudo snap connect rayforge:removable-media

# Verifique conexões atuais
snap connections rayforge

# Veja logs do Rayforge
snap logs rayforge

# Atualize o Rayforge
sudo snap refresh rayforge

# Remova e reinstale (último recurso)
sudo snap remove rayforge
sudo snap install rayforge
sudo snap connect rayforge:serial-port

Páginas Relacionadas​