我想在本地机器上执行需要sudo的命令。因此,正如文档所示,我使用了本地命令,但它要求我输入密码。我怎么能避免这个?是否有一些地方可以保存我的本地机器密码?
local('sudo /etc/init.d/tomcat6 start',capture=True)
答案 0 :(得分:4)
检查visudo
命令,这将允许您编辑/etc/sudoers
文件,您可以在其中定义计算机上的用户,命令和密码要求(例如,用户mlzboy不需要输入密码以执行/etc/init.d/tomcat6
)。不要忘记这会造成安全问题。
答案 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。