How can I switch to the user jenkins in the middle of a ssh script?

21,335

Solution 1

Use $USER. That will give you the username you logged in as. Whoami returns the user you're currently operating as.

Solution 2

You just have to use "su" command with "-s /bin/bash" argument. It´s needed because jenkins user was not supposed to be used interactively, so it doesn´t have the bash defined.

su jenkins -s /bin/bash

After this, the "whoami" command will report you as "jenkins" user.

Solution 3

Problem solved:

#!/bin/sh
sudo su
apt-get update
su jenkins <<HERE
whoami
echo usr=$USER
HERE

will output:
jenkins
usr=root

Source: http://www.daniweb.com/software-development/shell-scripting/threads/14498

Share:
21,335
quest-lion
Author by

quest-lion

#SOreadytohelp

Updated on August 14, 2020

Comments

  • quest-lion
    quest-lion over 3 years

    I run

    ssh root@myhost "sh -x" < myremotecommands.sh
    

    where myremotecommands.sh contains:

    #!/bin/sh
    sudo su
    apt-get update
    sudo su -l -p jenkins
    whoami
    

    however the command whoami returns 'root'. I need to be user jenkins to perform some installations.

    How can I switch to the user jenkins in the middle of the script ?

  • Priya Ranjan Singh
    Priya Ranjan Singh over 7 years
    Use $USER. Why?