A documentação fornecida para a firejail está disponível aqui . Infelizmente não é muito abrangente e é mais como um guia do usuário.
A resposta de L29Ah me forneceu informação suficiente para descobrir como fazer isso, mas é lamentável que a resposta não fornece exemplos úteis e mais informações. Então vou tentar responder a todas as perguntas e mostrar algumas maneiras reais de fazer isso.
-
Existe um perfil para aplicações locais? De olhar em código-fonte, firejail extrai o nome do comando do primeiro argumento na linha de comando que você diga que ele seja executado da seguinte forma: primeiro, ele trunca o valor da cadeia de que o argumento no primeiro caractere de espaço em branco que encontra, e em seguida, elimina todos os componentes principais do diretório no caminho. Portanto, o comando 'firejail / home / me / various / "commandName commandNameSecondWord"' procuraria por um perfil chamado "commandName.profile". Não há processamento especial para programas que são executados sob $ HOME versus um diretório do sistema como / usr / bin. Também é possível ignorar tudo isso usando uma ou mais opções "--profile = ..." na linha de comando.
-
Preciso editar o disable-common.profile? Não. Primeiro, não recomendo editar esse arquivo, pois ele está incluído em outros perfis do firejail. Em segundo lugar, eu não tive um problema em executar o meu programa local específico, mesmo com este arquivo incluído. Em terceiro lugar, se de alguma forma algo nesse arquivo é um problema, então você deve escrever um perfil personalizado que não inclui-lo, e se você quiser algumas partes dele de qualquer maneira, apenas copiá-los para o seu perfil personalizado.
-
Acabei de selecionar uma pasta diferente de ~ / bin /? Não, é mais complicado.
-
Existe uma opção CL para permitir pastas? Sim, existem várias maneiras de fazer isso. Normalmente, no entanto, você escreveria um perfil para o programa específico que está executando e o colocaria em $ HOME / .config / firejail. Um argumento de linha de comando "rápido e sujo" que pode ser suficiente é "--private-home = ...", que pode copiar arquivos e diretórios de nível superior para o sistema de arquivos do sandbox. Observe que há um limite de 500 MB no tamanho dos arquivos copiados e a cópia dos arquivos retardará a inicialização do aplicativo em área restrita.
-
Como posso executar aplicativos locais através firejail? Esta questão é um pouco geral, uma vez que cada aplicação pode precisar de uma configuração diferente (toda a razão por firejail é fornecido com toda uma biblioteca de perfis fora da caixa) e a configuração depende exatamente de como você deseja restringir o aplicativo (ou não). No entanto, eu consegui executar o meu aplicativo, instalando-o em um diretório de nível superior no meu diretório home chamado $ HOME / .local_fj e adicionando "-casa particular .local_fj" no perfil de comando personalizado (o limite de 500MB mencionado acima ainda se aplica) . Outra possibilidade pode estar usando "whitelist $ {HOME} /. Local_fj / programInstallDir". Em ambos os casos, certifique-se de que qualquer comando "noexec" não bloqueie a execução do programa a partir do diretório onde ele reside . (Nota: Eu não sou um usuário especialista em firejail - é quase certo que existem outras maneiras de fazer isso com as quais eu não estou familiarizado.)