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.alicenão consegue ler ou executar o script fornecido. -
alicepode executar o script executandosudo -u bob /path/to/myscript. Isso executará o script como usuáriobob.
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.