我正在使用 Fabric 在后台运行脚本。为此,我使用下面提到的函数。
def init_db(var):
with cd("%s/scripts" % var):
sudo (" nohup ./init_database.sh &> initdatabase.out &", pty=False)
我必须使用 pty=False 在后台执行此操作,但这会失败,因为在 sudoers 文件中提到了“默认 requiretty”选项,该选项不允许我在没有 pty 的情况下从 Fabric 运行 sudo。
我无法一直编辑每台服务器的 sudoers 文件,任何人都可以给我一些其他解决方案。
谢谢, 伊姆兰·泰利
最佳答案
警告:这不安全!不要使用这个!
Fabric 支持在 shell 命令中给出 sudo
密码:
fab --password=password [...]
但是,这意味着密码可能存储在 shell 历史记录、日志文件和其他随机位置中,任何有权访问该框的人都可以轻松检索它们。
执行此操作的安全方法是,正如您所提到的,设置 sudoers 来完全允许您期望脚本执行的操作,而无需密码即可执行其他操作。
关于linux - 使用 Fabric 运行后台命令(sudo : sorry, 你必须有一个 tty 才能运行 sudo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24990769/