su pass password to script

前端 未结 2 1676
慢半拍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:52

    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.

提交回复
热议问题