Fabric:本地命令用法

时间:2010-10-15 11:28:19

标签: python fabric

我想在本地机器上执行需要sudo的命令。因此,正如文档所示,我使用了本地命令,但它要求我输入密码。我怎么能避免这个?是否有一些地方可以保存我的本地机器密码?

local('sudo /etc/init.d/tomcat6 start',capture=True)

3 个答案:

答案 0 :(得分:4)

检查visudo命令,这将允许您编辑/etc/sudoers文件,您可以在其中定义计算机上的用户,命令和密码要求(例如,用户mlzboy不需要输入密码以执行/etc/init.d/tomcat6)。不要忘记这会造成安全问题。

Sudoers manual

答案 1 :(得分:4)

如果您不打算共享fabfile,可以使用:

echo "password\n" | sudo -S /etc/init.d/tomcat6 start

根据sudo手册页:

  

-S(stdin)选项导致sudo从中读取密码   标准输入而不是终端设备。该   密码必须后跟换行符。

答案 2 :(得分:2)

如果你想在环回ip上使用sudo:

from fabric.api import sudo,env
env.hosts =['127.0.0.1']
sudo('aptitude search fabric')

如果您在本地运行ssh服务器,则无需编辑sudoers。