From man sudo
:
-S The -S (stdin) option causes sudo to read the password from the standard
input instead of the terminal device. The password must be followed by a
newline character.
So, while it defies all security principles, echo 'password' | sudo -S su [...]
should work.
Alternatively, you could make your script writeable only by root and add the following to /etc/sudoers
to allow the user johndoe
to run it with root priviledges without having to enter his password:
johndoe ALL = NOPASSWD: /full/path/to/your/script
The part writeable only by root is important to prevent johndoe
from modifying the script and executing arbitrary commands as root.