Eu acredito que o método mais comum é simplesmente afirmar que o script requer que o sudo seja executado, como em:
sudo ./script_name.sh
Desta forma, todo o script é executado com privilégios administrativos. Se você pensar sobre isso do ponto de vista do modelo de segurança, não há razão para que um script que precise de sudo por pelo menos parte dele, não seja executado com o sudo. Caso contrário, é apenas um incômodo.
No entanto, se você insistir em usar o sudo para apenas algumas partes, poderá colocar o sudo no seu script bash e ele solicitará a senha e aguardará a entrada até continuar a execução do script. Depois de obter pelo menos uma entrada de senha sudo, todos os sudos subsequentes manterão os privilégios elevados e não solicitarão a senha novamente. Ele também lhe deixará sessão de terminal inteira com privilégios elevados para futuro sudo não executado dentro do script.
Quanto ao gksudo, acho que uma opção é dizer ao indivíduo para usar o diálogo de execução alt-f2 e, em vez de digitar sudo script_name.sh, digite gksudo e clique no botão "Executar com arquivo" e faça com que eles naveguem para e selecione o arquivo de script que eles precisam executar. Eu sei que é complicado. Espero que alguém tenha uma solução mais elegante.