【问题标题】:How can I switch to the user jenkins in the middle of a ssh script?如何在 ssh 脚本中间切换到用户 jenkins?
【发布时间】:2011-10-22 00:31:52
【问题描述】:

我跑

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?

【问题讨论】:

    标签: ssh sudo sh su


    【解决方案1】:

    您只需使用带有“-s /bin/bash”参数的“su”命令。之所以需要它,是因为不应该以交互方式使用 jenkins 用户,因此它没有定义 bash。

    su jenkins -s /bin/bash
    

    之后,“whoami”命令会将您报告为“jenkins”用户。

    【讨论】:

      【解决方案2】:

      使用$USER。这将为您提供您登录的用户名。 Whoami 返回您当前操作的用户。

      【讨论】:

      • 使用 $USER。为什么?
      【解决方案3】:

      问题解决了:

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

      将输出:
      詹金斯
      usr=root

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

      【讨论】:

        猜你喜欢
        • 2018-07-16
        • 2013-02-05
        • 1970-01-01
        • 1970-01-01
        • 2021-12-05
        • 2015-01-19
        • 2018-07-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多