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).