2010-10-15 63 views
5

我想執行一個需要在本地機器sudo的命令。正如文檔所示,我使用了本地命令,但它要求我輸入密碼。我怎樣才能避免這種情況?有什麼地方可以保存我的本地機器密碼嗎?面料:本地命令的使用

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

回答

4

檢查visudo命令,這將允許你編輯/etc/sudoers文件,在其中您可以定義用戶,命令和密碼要求的機器上(例如,用戶mlzboy不需要爲了進入密碼執行/etc/init.d/tomcat6)。不要忘記這可能會造成安全問題。

Sudoers manual

4

如果你不打算共享的fabfile你可以使用:

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

根據sudo的手冊頁:

的S(標準輸入)選項的原因sudo從 中讀取密碼,而不是終端設備的標準輸入。密碼 後面必須跟一個換行符。

+0

太棒了!作爲魅力工作! – deeshank 2014-02-12 05:22:23

1

如果你想使用sudo,但是,回送IP:

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

無需編輯sudoers文件,給你有一個SSH服務器在本地運行。