você teria que alterar o arquivo sudoers (ou adicionar um novo arquivo ao /etc/sudoers.d/) para permitir que o usuário "user" execute este script sem senha:
user ALL=(ALL:ALL) NOPASSWD: /home/user/Desktop/script.sh
se você não quiser executar o script.sh inteiro como root, você precisa mencionar todos os comandos dentro do script.sh que você irá incluir no sudo. de alguma forma, é mais legível se você usar o recurso de alias:
Cmnd_Alias SCRIPT_CMDS = /sbin/poweroff, /sbin/reboot, /sbin/halt
user ALL=(ALL:ALL) NOPASSWD: SCRIPT_CMDS
EDITAR
Se você criar algum script que produza a senha no stdout, você pode usar o parâmetro askpass:
sudo -A /path/to/password-output-script /some/command/to/be/run/as/root
senão isso pode ser de interesse para você (da sudo man page):
% bl0ck_qu0te%