用fabric运行后台命令(sudo:抱歉,你必须有一个运行sudo的tty)

时间:2014-07-28 07:55:44

标签: linux bash python-2.7 fabric

我正在使用fabric在后台运行脚本。为此,我使用下面提到的功能。

def init_db(var):
    with cd("%s/scripts" % var):
            sudo (" nohup ./init_database.sh &> initdatabase.out &", pty=False)

我必须使用pty = False在backgound中执行此操作但是这会失败,因为在sudoers文件中提到了“Defaults requiretty”选项,它不允许我从没有pty的fabric运行sudo。

我无法为每台服务器编辑sudoers文件,任何人都可以给我一些其他解决方案。

谢谢, Imran Teli

1 个答案:

答案 0 :(得分:0)

警告:这不安全!不要使用它!

Fabric支持在shell命令中提供sudo密码:

fab --password=password [...]

但是,这意味着密码可能存储在shell历史记录,日志文件和其他随机位置,任何人都可以轻松地检索密码。

这样做的安全方法就像你提到的那样,设置sudoers以准确允许脚本执行的操作,没有其他任何内容,没有密码。