Permitir executar um script python, mas não permitir a leitura de seu conteúdo

0

Eu quero demonstrar a um cliente como meu script python funciona no meu servidor ao qual eu darei acesso. Além disso, eu não quero que ele seja capaz de ver o código do script python, apenas executá-lo. É possível fazer de alguma forma por meio do Linux? Talvez criando um usuário adicional?

    
por Johshi 01.09.2016 / 05:11

1 resposta

2

Assim, em geral, a resposta a esse tipo de pergunta é "não, não facilmente", mas, para o seu caso específico, acho que você pode realmente encontrar uma solução.

Suponha que seu cliente fará login em seu servidor como usuário alice . Crie outro usuário bob que possui o script e torne-o somente legível / executável pelo usuário bob :

# chown bob /path/to/myscript
# chmod 700 /path/to/myscript

Agora, crie uma configuração sudo que permita que alice execute esse script como usuário bob . Por exemplo, crie /etc/sudoers.d/alice com a seguinte configuração:

alice ALL=(bob) NOPASSWD:/path/to/myscript

Agora:

  • Seu cliente efetua login como alice . alice não consegue ler ou executar o script fornecido.
  • alice pode executar o script executando sudo -u bob /path/to/myscript . Isso executará o script como usuário bob .

Esta solução tem certas limitações: por exemplo, como o script será executado como usuário diferente do chamador, você pode ter problemas ao criar arquivos no diretório pessoal do chamador.

    
por 01.09.2016 / 06:03