我跑
ssh root@myhost "sh -x" < myremotecommands.sh
myremotecommands.sh包含:
#!/bin/sh
sudo su
apt-get update
sudo su -l -p jenkins
whoami
然而命令whoami返回'root'。 我需要成为用户jenkins来执行一些安装。
如何切换到脚本中间的用户jenkins?
答案 0 :(得分:6)
你必须使用带有“-s / bin / bash”参数的“su”命令。这是必要的,因为jenkins用户不应该以交互方式使用,所以它没有定义bash。
su jenkins -s /bin/bash
在此之后,“whoami”命令会将您报告为“jenkins”用户。
答案 1 :(得分:2)
使用$USER
。这将为您提供您登录的用户名。 Whoami
会返回您当前正在运营的用户。
答案 2 :(得分:1)
问题解决了:
#!/bin/sh
sudo su
apt-get update
su jenkins <<HERE
whoami
echo usr=$USER
HERE
将输出:
詹金斯
USR =根
来源: http://www.daniweb.com/software-development/shell-scripting/threads/14498