面料如何使用'sudo su user'

时间:2017-10-04 17:26:43

标签: python sudo fabric

我的要求很简单:

  1. ssh到具有user0的远程服务器
  2. 使用以下命令将用户切换为user1:'sudo su user1'
  3. 列出当前文件夹中的所有项目
  4. 我的预期代码:

    def startRedis():
        run('sudo su - user1')
        print(run('ls'))
    

    然而,它以:user1@server:~$结束 并且永远等待我的交互式命令,从不执行第二行。似乎sudo su打开了一个新shell。

    任何人都可以帮忙解决这个简单的任务吗?

1 个答案:

答案 0 :(得分:0)

您可以在env中设置sudo_user属性。这样,结构将用户切换到所需的用户。

官方文件:http://docs.fabfile.org/

切换用户的密码可以在env中指定。本身是为了避免在调用方法时得到提示。

fabfile.py

from fabric.api import env, sudo

env.sudo_user='user1'
env.password = '***'

def list_items():
    sudo('ls')

运行以下命令&在-H

之后指定主机
fab -H host1 list_items