我在后台使用织物运行脚本。要做到这一点,我使用下面提到的函数。
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以允许您期望脚本执行的操作,而不需要密码。