我的要求很简单:
我的预期代码:
def startRedis():
run('sudo su - user1')
print(run('ls'))
然而,它以:user1@server:~$
结束
并且永远等待我的交互式命令,从不执行第二行。似乎sudo su
打开了一个新shell。
任何人都可以帮忙解决这个简单的任务吗?
答案 0 :(得分:0)
您可以在env中设置sudo_user
属性。这样,结构将用户切换到所需的用户。
切换用户的密码可以在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