我想執行一個需要在本地機器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