我正在使用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
答案 0 :(得分:0)
警告:这不安全!不要使用它!
Fabric支持在shell命令中提供sudo
密码:
fab --password=password [...]
但是,这意味着密码可能存储在shell历史记录,日志文件和其他随机位置,任何人都可以轻松地检索密码。
这样做的安全方法就像你提到的那样,设置sudoers以准确允许脚本执行的操作,没有其他任何内容,没有密码。