Se este fosse um binário normal, você poderia setuid executando
# chmod u+s /path/to/binary
Infelizmente, os scripts não podem ser setuid. (Bem, você pode, mas é ignorado). A razão para isso é que a primeira linha do script informa ao SO qual interpretador executar o script. Por exemplo, se você tivesse um script com:
#!/bin/bash
Você realmente acabaria correndo
/bin/bash /path/to/script
Obviamente, você precisaria que o interpretador fosse setuid, o que significaria que todos os scripts seriam setuid. Isso seria ruim.
Você pode fazer isso com o sudo colocando o seguinte em seu arquivo / etc / sudoers executando o visudo.
ALL ALL=NOPASSWD: /path/to/script
E agora qualquer usuário pode executar
$ sudo /path/to/script
Isso permite que eles executem o script sem digitar sua senha.
Existe uma alternativa que não requer sudo no comando, o que requer a criação de um pequeno binário definido que executa seu script, mas cada binário adicional do setuid adiciona outro problema de segurança em potencial.