Você pode usar o sudo para isso.
Você pode permitir que seus usuários sudo seu script e apenas esse script.
Passo a passo:
-
Crie uma conta "executor_account" do sistema (você pode usar qualquer nome) e conceda permissões ao seu script. Não use conta root para isso.
-
Configure o sudo.
Você tem que aprender como usar o sudo e permitir que seus usuários façam "sudo executor_account myscript.sh" e nada mais. É possível permitir que executem arquivos que eles não conseguem. Eu não sou especialista em Linux, não vou explicar isso, mas você pode encontrar muitos tutoriais sobre o sudo em todos os lugares.
Acho que é a única maneira de permitir que o usuário execute o arquivo que ele não consegue ler.
O script será executado a partir de outra conta de usuário, portanto, os "produtos" eventuais do script (registros, etc.) serão de propriedade dessa conta especial criada por você. Você tem que lidar com isso de alguma forma, se o script ou programa executado pelo script está produzindo alguns arquivos.