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
Comments
-
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 over 7 yearsUse $USER. Why?