su pass password to script

前端 未结 2 1678
慢半拍i
慢半拍i 2021-01-02 17:18

I am trying to write a script that will run the following commands:

sudo su
runmqsc_result=`su -c \"runmqsc QMGR < /home/rob/query_queue.txt\" -m \"mqm\"`         


        
2条回答
  •  甜味超标
    2021-01-02 17:42

    This solution work by using 'script' command from the 'bsdutiles' package that setup a pty (a terminal). The 'sleep' command is there to prevent sending the password before the 'su' command is ready to read it. The 'tail' command remove the "Password:" input line issued by 'su'.

     { sleep 1; echo rootpassword } | script -qc 'su -c "runmqsc QMGR < /home/rob/query_queue.txt" -m "mqm"' /dev/null | tail -n +2
    

    Beware that the rootpassword could be see in many ways (history, ps, /proc/, etc...). Start the command with a space to at least avoid history recording.

提交回复
热议问题