如何实现 fabric 切换 root 执行命令

由于我们生产禁用了 root 登录,所以执行一些高权限的自动化任务时,需要通过先登录一个普通用户,然后 su 到 root 再执行。最近正在研究 fabric 这款工具,很优雅很棒,但是似乎不支持切换用户。请教用过的同学,能否告知如何实现切换用户,或者为什么 fabric 不支持 su 么?看了一下 fabric sudo 的源码,了解到 linux sudo 命令支持标准输入作为密码,su 命令不行,难道是这个原因,所以 fabric 没有实现 su 的功能么。

阅读 5.9k
1 个回答
from fabric.api import *
env.user = '远程用户名'
env.hosts = ['远程主机']

def test():
    run('su') # 会让你输入密码,然后就是root命令行了
    

你报的错误是什么?直接用ssh在远程主机上执行su呢?fabric其实底层就用的ssh,原理是一样

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题