Ambos su e sudo pode fazer isso. Eles executam um comando como outro usuário; Por padrão, "outro usuário" é root, mas pode ser qualquer usuário. Por exemplo,
sudo -u www-data ls
executará ls como o usuário www-data .
No entanto ...
A maneira usual é executar o script como o usuário chamado e usar sudo para os comandos que precisam dele. sudo armazena em cache as credenciais, por isso deve solicitar no máximo uma vez.