O problema com isso é que, independentemente de como você o divide, se um usuário sem privilégios puder escrever no arquivo de script, você está deixando uma porta aberta para permitir que o usuário faça qualquer coisa, pois nesse caso / ele pode modificar o script. No entanto, não há necessidade de fazer isso, pois ele pode ter raiz e definir 0700, se quiser.
rather than setting suid and sudo privilege to Apache
Você não precisa configurar o suid em nada, e você pode usar o sudo para que o apache só possa executar esse script. Se o apache for executado como usuário httpd , adicione a /etc/sudoers :
httpd ALL = NOPASSWD: /foo/bar/scripts/foobar.sh
Substitua o caminho real do script ali. A chamada terá então que usar sudo /foo/bar/scripts/foobar.sh . Mas essa é a única coisa que o usuário httpd poderá fazer dessa maneira.
Veja man 5 sudoers para mais detalhes.