在Fabric python中切换用户后不执行命令

时间:2017-07-27 20:25:35

标签: python python-2.7 fabric

我遇到了一个问题,即在使用.hero { background-repeat: no-repeat; background-position: center center; background-size: cover; } 操作在远程服务器上切换用户后,命令不会执行。

我想做的事情:

  1. 连接到远程主机
  2. 切换到userB
  3. 在userB下运行脚本
  4. 代码段:

    run

    运行python脚本时,我得到的是:

      

    [userA@hello.com]执行任务'build'

         

    [userA@hello.com]运行:sudo su - userB

         

    [userA@hello.com]'userA'的登录密码:

         

    [userA@hello.com] out:userA的[sudo]密码:

         

    [userA@hello.com] out:[userB@hello.com~] $

    PS:我可以输入Login和sudo的密码。

1 个答案:

答案 0 :(得分:0)

每个结构命令的上下文彼此独立。因此,您的run("./path/to/run.sh")仍然被userA调用。

您需要与with分享环境上下文:

def build():
  with settings(user='userB',password='foobar'):
    run("./path/to/run.sh")

http://docs.fabfile.org/en/latest/api/core/context_managers.html#fabric.context_managers.settings