问题
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.
回答1:
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.
来源:https://stackoverflow.com/questions/31125637/passing-su-password-in-shell-script