如何在 ssh 脚本中切换到用户 jenkins?
我运行
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 ?
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 ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您只需使用“su”命令和“-s /bin/bash”参数即可。它是必需的,因为 jenkins 用户不应该以交互方式使用,因此它没有定义 bash。
此后,“whoami”命令会将您报告为“jenkins”用户。
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.
After this, the "whoami" command will report you as "jenkins" user.
使用
$USER
。这将为您提供登录时使用的用户名。Whoami
返回您当前操作的用户。Use
$USER
. That will give you the username you logged in as.Whoami
returns the user you're currently operating as.问题解决:
将输出:
詹金斯
usr=root
来源:
http://www.daniweb.com/software-development/shell-scripting /线程/14498
Problem solved:
will output:
jenkins
usr=root
Source:
http://www.daniweb.com/software-development/shell-scripting/threads/14498