No estoy seguro si esto rompe alguna regla, pero
sudo bash script.sh
Parece funcionar para mi.
Lo que estás tratando de hacer es imposible; su shell actual se ejecuta con su ID de usuario normal (es decir, sin root el acceso sudo le daría), y no hay forma de otorgarle acceso de root . Qué sudo lo que hace es crear un nuevo *sub*proceso que se ejecuta como root. El subproceso podría ser simplemente un programa normal (por ejemplo, sudo cp ... ejecuta el cp programa en un proceso raíz) o podría ser una subcapa raíz, pero no puede ser el caparazón actual.
(En realidad, es aún más imposible que eso, porque el sudo El comando en sí se ejecuta como un subproceso del shell actual, lo que significa que, en cierto sentido, ya es demasiado tarde para que haga algo en el "shell actual", porque no es allí donde se ejecuta).