Passing su password in shell script

Vijay Kumar Badugu picture Vijay Kumar Badugu · Jun 29, 2015 · Viewed 6.9k times · Source

How can password be passed in a shell script using su(without sudo and except)?. I have tried echo "password" | su root -c .But it didnt work.

Answer

that other guy picture that other guy · Jun 29, 2015

The best way of doing this is with sudo, but since you don't want the best solution, you can you can use script instead:

{ sleep 3; echo "yourpassword"; } | script -q -c 'su -c whoami' /dev/null

This will print root, the output of whoami.

Please make sure to try this command verbatim (with password replaced) before trying to adapt it to run your own commands, since adapting it is difficult and error prone.