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