使用fabric运行后台命令(sudo:抱歉,必须有tty才能运行sudo)



我在后台使用织物运行脚本。要做到这一点,我使用下面提到的函数。

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

我必须使用pty=False在后台做到这一点,但这失败了,因为在sudoers文件"默认要求"选项被提到,这不允许我从织物中运行sudo没有pty。

我不能一直在每个服务器上编辑sudoers文件,谁能给我一些其他的解决方案?

谢谢,伊姆兰Teli

警告:此操作不安全!不要用这个!

Fabric支持在shell命令中给出sudo密码:

fab --password=password [...]

然而,这意味着密码可能存储在shell历史记录,日志文件和其他随机的地方,在那里他们可以很容易地被任何人以任何方式访问盒子。

执行此的安全方法是,如前所述,设置sudoers以允许您期望脚本执行的操作,而不需要密码。

最新更新