如何在ssh脚本中切换到用户jenkins?

时间:2011-08-07 22:43:57

标签: ssh sudo sh su

我跑

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?

3 个答案:

答案 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