我想执行一个需要在本地机器sudo的命令。正如文档所示,我使用了本地命令,但它要求我输入密码。我怎样才能避免这种情况?有什么地方可以保存我的本地机器密码吗?面料:本地命令的使用
local('sudo /etc/init.d/tomcat6 start',capture=True)
我想执行一个需要在本地机器sudo的命令。正如文档所示,我使用了本地命令,但它要求我输入密码。我怎样才能避免这种情况?有什么地方可以保存我的本地机器密码吗?面料:本地命令的使用
local('sudo /etc/init.d/tomcat6 start',capture=True)
检查visudo
命令,这将允许你编辑/etc/sudoers
文件,在其中您可以定义用户,命令和密码要求的机器上(例如,用户mlzboy不需要为了进入密码执行/etc/init.d/tomcat6
)。不要忘记这可能会造成安全问题。
如果你不打算共享的fabfile你可以使用:
echo "password\n" | sudo -S /etc/init.d/tomcat6 start
根据sudo的手册页:
的S(标准输入)选项的原因sudo从 中读取密码,而不是终端设备的标准输入。密码 后面必须跟一个换行符。
如果你想使用sudo,但是,回送IP:
from fabric.api import sudo,env
env.hosts =['127.0.0.1']
sudo('aptitude search fabric')
无需编辑sudoers文件,给你有一个SSH服务器在本地运行。
太棒了!作为魅力工作! – deeshank 2014-02-12 05:22:23